Osama Sohaib

54 papers B 2Journal 33Unranked 18
YearRankTypeTitle / Venue / Authors
2025 J jnl
J. Organ. End User Comput.
Xiaozhi Su, Bilal Alatas, Osama Sohaib
2025 J jnl
J. Inf. Knowl. Manag.
Abdul Samad Dahri, Junaid Rehman, Fatuma Namisango, Sadia Shaikh, Osama Sohaib
2025 J jnl
PeerJ Comput. Sci.
Mohamed Shili, Osama Sohaib
2024 J jnl
J. Ambient Intell. Humaniz. Comput.
Thomas Dolmark, Osama Sohaib, Ghassan Beydoun, Firouzeh Rosa Taghikhah
2024 J jnl
J. Organ. End User Comput.
Ming Xu, Chen Peng, Yueyue Hou, Yating Xiao, Osama Sohaib
2024 J jnl
PeerJ Comput. Sci.
Mumtaz Ali, Muhammad Arshad, Ijaz Uddin, Muhammad Binsawad, Abdullah Bin Sawad, Osama Sohaib
2024 J jnl
IEEE Access
Qingchao Zhang, Osama Sohaib
2024 J jnl
Int. J. Serv. Sci. Manag. Eng. Technol.
Abdelfatah Arman, Osama Sohaib, Vazeerjan Begum, Aaesha Aaesha Alkharman
2024 conf
ACIIDS (Companion 2)
Roz-Ud-Din Nassar, Osama Sohaib
2024 J jnl
Frontiers Comput. Sci.
Umema Hani, Osama Sohaib, Muhammad Khalid Khan, Asma Aleidi, Noman Islam
2024 J jnl
Algorithms
Mohamed Shili, Osama Sohaib, Salah Hammedi
2023 J jnl
J. Inf. Knowl. Manag.
Junaid Rehman, Igor T. Hawryszkiewycz, Osama Sohaib, Fatuma Namisango, Abdul Samad Dahri
2023 J jnl
J. Inf. Technol. Educ. Innov. Pract.
Mamdouh Qahl, Osama Sohaib
2023 J jnl
PeerJ Comput. Sci.
Abdulrahman Alyami, Salvatore Flavio Pileggi, Osama Sohaib, Igor T. Hawryszkiewycz
2022 J jnl
PeerJ Comput. Sci.
Abdullah Alammari, Osama Sohaib, Sayed Younes
2022 J jnl
PeerJ Comput. Sci.
Muhammad Binsawad, Ghazanfar Ali Abbasi, Osama Sohaib
2022 J jnl
Inf. Syst. Frontiers
Kai Wu, Ghassan Beydoun, Osama Sohaib, Asif Gill
2022 J jnl
J. Glob. Inf. Manag.
Thomas Dolmark, Osama Sohaib, Ghassan Beydoun, Kai Wu, Firouzeh Rosa Taghikhah
2021 conf
ICETE (Selected Papers)
Lifu Li, Kyeong Kang, Osama Sohaib
2021 J jnl
Int. J. Knowl. Manag.
Junaid Rehman, Igor Titus Hawryszkiewycz, Osama Sohaib, Fatuma Namisango
2021 J jnl
PeerJ Comput. Sci.
Muhammad Umar Aftab, Ariyo Oluwasanmi, Abdullah Alharbi, Osama Sohaib, Xuyun Nie, Zhiguang Qin, Ngo Tung Son
2021 J jnl
J. Glob. Inf. Manag.
Osama Sohaib
2021 J jnl
IEEE Access
Abdullah Alharbi, Osama Sohaib
2021 conf
HICSS
Celina M. Olszak, Osama Sohaib
2020 J jnl
IEEE Access
Osama Sohaib, Walayat Hussain, Muhammad Asif, Muhammad Ahmad, Manuel Mazzara
2020 J jnl
Mob. Networks Appl.
Walayat Hussain, Osama Sohaib, Mohsen Naderpour, Honghao Gao
2020 conf
HICSS
Junaid Rehman, Igor T. Hawryszkiewycz, Osama Sohaib, Altaf Soomro
2019 J jnl
IEEE Access
Walayat Hussain, Osama Sohaib
2019 conf
ICSCA
Saif Ullah, Muhammad Asif, Shahbaz Ahmad, Ulfat Imdad, Osama Sohaib
2019 J jnl
Comput. Ind. Eng.
Osama Sohaib, Mohsen Naderpour, Walayat Hussain, Luis Martínez-López
2019 J jnl
J. Ambient Intell. Humaniz. Comput.
Osama Sohaib, Hiralkumari Solanki, Navkiran Dhaliwa, Walayat Hussain, Muhammad Asif
2019 conf
HICSS
Mujid Attar, Kyeong Kang, Osama Sohaib
2019 J jnl
J. Ambient Intell. Humaniz. Comput.
Mirfa Manzoor, Walayat Hussain, Osama Sohaib, Farookh Khadeer Hussain, Salem Alkhalaf
2019 conf
ACIS
Junaid Rehman, Igor T. Hawryszkiewycz, Osama Sohaib, Fatuma Namisango
2019 conf
ISD
Thomas Dolmark, Osama Sohaib, Ghassan Beydon
2019 J jnl
Symmetry
Ulfat Imdad, Muhammad Asif, Mirza Tahir Ahmad, Osama Sohaib, Muhammad Kashif Hanif, Muhammad Hasanain Chaudary
2019 J jnl
J. Glob. Inf. Manag.
Osama Sohaib, Kyeong Kang, Iwona Miliszewska
2018 conf
PACIS
Junaid Rehman, Igor T. Hawryszkiewycz, Osama Sohaib
2018 conf
AMCIS
Muhammad Binsawad, Osama Sohaib, Igor T. Hawryszkiewycz, Asma Aleidi
2018 conf
PACIS
Mujid Attar, Kyeong Kang, Osama Sohaib
2018 B conf
FUZZ-IEEE
Osama Sohaib, Mohsen Naderpour, Walayat Hussain
2018 conf
ISD
Ali Alharthy, Osama Sohaib, Igor T. Hawryszkiewycz
2017 B conf
FUZZ-IEEE
Osama Sohaib, Mohsen Naderpour
2017 conf
ISD
Muhammad Binsawad, Osama Sohaib, Igor T. Hawryszkiewycz
2016 conf
ISD
Osama Sohaib, Kyeong Kang
2016 conf
PACIS
Abdullah Alharbi, Kyeong Kang, Osama Sohaib
2016 conf
PACIS
Mohammad Alattas, Kyeong Kang, Osama Sohaib
2016 J jnl
CoRR
Osama Sohaib, Kyeong Kang
2015
Osama Sohaib
2015 conf
ACIS
Osama Sohaib, Kyeong Kang
2015 J jnl
Int. J. Electron. Bus.
Osama Sohaib, Kyeong Kang
2014 J jnl
Electron. J. Inf. Syst. Dev. Ctries.
Osama Sohaib, Kyeong Kang
2014 conf
PACIS
Osama Sohaib, Kyeong Kang
2011 J jnl
CoRR
Walayat Hussain, Osama Sohaib, Arif Ali
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.")