Haitao Dong

26 papers B 2C 1Misc 1Journal 13Unranked 8
YearRankTypeTitle / Venue / Authors
2026 J jnl
J. Comput. Appl. Math.
Han Ding, Zhansen Qian, Haitao Dong, Chong Pan
2025 J jnl
IEEE Trans. Geosci. Remote. Sens.
Junxiong Liang, Mengwei Bao, Haitao Dong, Liang Xie, Ryan Wen Liu, Nengcheng Chen
2024 J jnl
Remote. Sens.
Haitao Dong, Jian Suo, Zhigang Zhu, Haiyan Wang, Hongbing Ji
2024 J jnl
CoRR
Tong Zhou, Haitao Dong, Shucheng Pan
2024 J jnl
Sensors
Haitao Dong, Shilei Ma, Jian Suo, Zhigang Zhu
2023 J jnl
IEEE Access
Haitao Dong, Chengjun Chen, Jinlei Wang, Feixiang Shen, Yong Pang
2021 J jnl
IEEE Access
Haitao Dong, Mingchen Xiao, Zhaojun Li, Shuaitao Zhang, Jianguo Chen
2021 conf
AIPR
Ying Liu, Xin Che, Haitao Dong, Daxiang Li, Shyh Wei Teng, Guojun Lu
2021 conf
ICSPCC
Zhe Jiang, Xuewen Chen, Ke He, Haitao Dong
2020 J jnl
Sensors
Haitao Dong, Ke He, Xiaohong Shen, Shilei Ma, Haiyan Wang, Changcheng Qiao
2020 J jnl
J. Comput. Phys.
Fujun Liu, Haitao Dong
2019 conf
SSPS
Haitao Dong, Ying Liu, Fuping Wang, Keng-Pang Lim
2018 J jnl
IEEE Access
Haitao Dong, Haiyan Wang, Xiaohong Shen, Zhe Jiang
2018 J jnl
J. Comput. Phys.
Haitao Dong, Fujun Liu
2018 J jnl
J. Sci. Comput.
Haitao Dong, Fujun Liu
2017 conf
ICSPCC
Shilei Ma, Haiyan Wang, Xiaohong Shen, Haitao Dong
2016 C conf
SNPD
Haitao Dong, Jun Yang, Yiqiang Sheng
2016 J jnl
J. Commun.
Haitao Dong, Lei Song, Jin-Lin Wang, Jun Yang
2006 B conf
ACIVS
Gangyi Jiang, Mei Yu, Feng Shao, You Yang, Haitao Dong
2005 conf
APPT
Hongliang Yu, Weimin Zheng, Dongsheng Wang, Haitao Dong, Lu Li
2005 ch.
Handbook on Theoretical and Algorithmic Aspects of Sensor, Ad Hoc Wireless, and Peer-to-Peer Networks
Weimin Zheng, Xuezheng Liu, Shuming Shi, Jinfeng Hu, Haitao Dong
2005 B conf
ICPP
Jinfeng Hu, Ming Li, Hongliang Yu, Haitao Dong, Weimin Zheng
2004 conf
GCC
Ming Li, Jinfeng Hu, Haitao Dong, Dongsheng Wang, Weimin Zheng
2004 conf
GCC
Haitao Dong, Weimin Zheng, Dongsheng Wang
2004 conf
IPTPS
Jinfeng Hu, Ming Li, Weimin Zheng, Dongsheng Wang, Ning Ning, Haitao Dong
2004 Misc conf
International Conference on Computational Science
Jinfeng Hu, Haitao Dong, Weimin Zheng, Dongsheng Wang, Ming Li
redb/utils/wrapper_run_sort_files.py
← Index redb/utils/wrapper_run_sort_files.py python
import os
import subprocess
import multiprocessing
import logging
from concurrent.futures import ThreadPoolExecutor
import signal

# Variables (replace these with actual values)
src_root_folder_path = "/mnt/samples/consilience/malware/vx-bazaar-expanded/"
dst_root_folder_path = "/mnt/samples/consilience/malware/_sorted_samples/vx-bazaar/"
log_folder_path = "/mnt/samples/consilience/malware/ops-logs/"
folder_names = ["Bazaar.2022.01", "Bazaar.2022.02", "Bazaar.2022.03", "Bazaar.2022.04"]  # List of folder names
script_name = "sort_files_by_type.py"
dry_run = True  # Set to True for testing without execution


# Ensure the log folder exists
os.makedirs(log_folder_path, exist_ok=True)

# Configure logging
main_log_name = "20241229-main_script.log"
main_log_file = os.path.join(log_folder_path, main_log_name)
if not os.path.exists(main_log_file):
    open(main_log_file, 'a').close()  # Create the log file if it doesn't exist
# main_log_file = os.path.join(log_folder_path, main_log_name)
# try:
#     with open(main_log_file, 'a') as f:
#         print(f"Successfully created/opened log file at: {main_log_file}")
#     # Verify the file exists
#     if os.path.exists(main_log_file):
#         print(f"Confirmed log file exists at: {main_log_file}")
#         print(f"File size: {os.path.getsize(main_log_file)} bytes")
# except Exception as e:
#     print(f"Error with log file: {e}")

# Configure logging
logging.basicConfig(
    filename=main_log_file,
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
    force=True,
    filemode='a'
)

logging.info("Logging initialization test message")

# Add logging handler to flush immediately
class FlushableFileHandler(logging.FileHandler):
    def emit(self, record):
        super().emit(record)
        self.flush()

for handler in logging.getLogger().handlers:
    if isinstance(handler, logging.FileHandler):
        handler.flush()

# Global flag for graceful termination
terminate_flag = False

def signal_handler(signum, frame):
    global terminate_flag
    terminate_flag = True
    logging.warning("Termination signal received. Attempting to shut down gracefully.")

# Register signal handler
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

# Define the worker function
def process_folder(folder):
    global terminate_flag
    if terminate_flag:
        logging.warning(f"Skipping folder {folder} due to termination signal.")
        return

    try:
        # Extract the word and date fields from the folder name
        word, year, month = folder.split('.')

        # Construct source, destination, and log paths
        src_folder = os.path.join(src_root_folder_path, folder)
        dst_folder = os.path.join(dst_root_folder_path, folder)
        log_file = os.path.join(
            log_folder_path, f"20241229-SORT_FILES-bazaar_{year}.{month}.output.log"
        )

        if not os.path.exists(log_file):
            open(log_file, 'a').close()  # Create the log file if it doesn't exist

        # Build the command
        command = ["python3", script_name, src_folder, dst_folder]

        if dry_run:
            logging.info(f"Dry run: Would execute: {command}, log: {log_file}")
            print(f"Dry run: Would execute: {command}, log: {log_file}")
        else:
            logging.info(f"Starting task for folder: {folder}")
            with open(log_file, "w") as log:
                subprocess.run(command, stdout=log, stderr=subprocess.STDOUT, check=True)
            logging.info(f"Task completed for folder: {folder}")

    except subprocess.CalledProcessError as e:
        logging.error(f"Subprocess failed for folder {folder} with return code {e.returncode}: {e}")
        print(f"Subprocess failed for folder {folder}: {e}")
    except Exception as e:
        logging.error(f"Error while processing folder {folder}: {e}")
        print(f"Error while processing folder {folder}: {e}")

# Determine the number of processors
num_processors = multiprocessing.cpu_count()

try:
    # Process folders using ThreadPoolExecutor
    with ThreadPoolExecutor(max_workers=num_processors-1) as executor:
        executor.map(process_folder, folder_names)

except Exception as e:
    logging.critical(f"Critical error in the main execution: {e}")
    print(f"Critical error: {e}")

logging.info("All tasks completed.")
print("All tasks completed.")