Hamza Gharsellaoui

60 papers B 15C 9Journal 18Unranked 17
YearRankTypeTitle / Venue / Authors
2026 conf
ICAART (5)
Taif Ammash, Hamza Gharsellaoui, Leila Ben Ayed
2026 conf
ICAART (2)
Mehrez Hosni, Hamza Gharsellaoui, Sadok Bouamama
2026 conf
ICAART (5)
Hafedh Jouini, Hamza Gharsellaoui, Mohamed Khalgui
2026 conf
ICAART (4)
Mohamed Anouer Sdiri, Hamza Gharsellaoui, Sadok Bouamama
2025 B conf
KES
Zahra Yousef, Hamza Gharsellaoui, Walid Barhoumi
2025 conf
ICAART (3)
Dhuha Al-Adhami, Hamza Gharsellaoui, Olfa Belkahla Driss
2025 B conf
KES
Taif Ammash, Hamza Gharsellaoui, Leila Ben Ayed
2025 B conf
KES
Zainab Al-Qassab, Hamza Gharsellaoui, Sadok Bouamama
2025 B conf
ENASE
Taif Ammash, Hamza Gharsellaoui, Leila Ben Ayed
2024 J jnl
Int. J. Sociotechnology Knowl. Dev.
Zainab Al-Qassab, Hamza Gharsellaoui, Sadok Bouamama
2024 C conf
CoDIT
Afef Gueidi, Hamza Gharsellaoui, Samir Ben Ahmed
2024 conf
ICAART (3)
Hayfa Ben Abdallah, Hamza Gharsellaoui, Sadok Bouamama
2023 conf
IOTSMS
Zahra Yousef, Hamza Gharsellaoui, Walid Barhoumi
2023 J jnl
J. Ambient Intell. Humaniz. Comput.
Hamza Gharsellaoui, Imen Khemaissia, Ali Alshahrani
2022 J jnl
Appl. Soft Comput.
Haithem Hafsi, Hamza Gharsellaoui, Sadok Bouamama
2021 J jnl
Comput. Hum. Behav.
Hamza Gharsellaoui, Jihen Maâzoun, Nadia Bouassida, Samir Ben Ahmed, Hanêne Ben-Abdallah
2021 B conf
KES
Toutou Oudaa, Hamza Gharsellaoui, Samir Ben Ahmed
2021 B conf
KES
Ghofrane Rehaiem, Hamza Gharsellaoui, Samir Ben Ahmed
2021 B conf
KES
Afef Gueidi, Hamza Gharsellaoui, Samir Ben Ahmed
2020 J jnl
Int. J. Secur. Priv. Pervasive Comput.
Ahlem Fatnassi, Hamza Gharsellaoui, Sadok Bouamama
2019 J jnl
Int. J. Serv. Sci. Manag. Eng. Technol.
Syrine Sahmim Ep Guerbouj, Hamza Gharsellaoui, Sadok Bouamama
2019 B conf
KES
Ibrahim Gharbi, Hamza Gharsellaoui, Sadok Bouamama
2019 J jnl
IEEE Access
Hamza Gharsellaoui, Mohamed Khalgui
2019 B conf
KES
Syrine Sahmim, Hamza Gharsellaoui, Sadok Bouamama
2019 B conf
KES
Haithem Hafsi, Hamza Gharsellaoui, Sadok Bouamama
2019 B conf
KES
Nejla Rouissi, Hamza Gharsellaoui, Sadok Bouamama
2019 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Afef Gueidi, Hamza Gharsellaoui, Samir Ben Ahmed
2019 B conf
KES
Ahlem Fatnassi, Hamza Gharsellaoui, Sadok Bouamama
2019 conf
GECCO (Companion)
Haithem Hafsi, Hamza Gharsellaoui, Sadok Bouamama
2018 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Nejla Rouissi, Hamza Gharsellaoui, Sadok Bouamama
2018 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Ibrahim Gharbi, Hamza Gharsellaoui, Sadok Bouamama
2018 J jnl
Int. J. Intell. Eng. Informatics
Ghofrane Rehaiem, Hamza Gharsellaoui, Samir Ben Ahmed
2017 B conf
KES
Nejla Rouissi, Hamza Gharsellaoui
2017 C conf
SEKE
Ghofrane Rehaiem, Hamza Gharsellaoui, Samir Ben Ahmed
2017 B conf
KES
Syrine Sahmim, Hamza Gharsellaoui
2017 C conf
ICIS
Afef Gueidi, Hamza Gharsellaoui, Samir Ben Ahmed
2016 conf
ICSOFT-EA
Afef Gueidi, Hamza Gharsellaoui, Samir Ben Ahmed
2016 C conf
SERA
Nejla Rouissi, Hamza Gharsellaoui, Sadok Bouamama
2016 C conf
ICIS
Ghofrane Rehaiem, Hamza Gharsellaoui, Samir Ben Ahmed
2016 conf
ICSOFT-EA
Mohamed Shili, Hamza Gharsellaoui, Dalel Kanzari
2016 J jnl
Int. J. Syst. Dyn. Appl.
Atef Gharbi, Hamza Gharsellaoui, Mohamed Khalgui
2015 conf
ICEIS (1)
Ibrahim Gharbi, Hamza Gharsellaoui, Sadok Bouamama
2015 B conf
ENASE
Hamza Gharsellaoui, Jihen Maâzoun, Nadia Bouassida, Samir Ben Ahmed, Hanêne Ben-Abdallah
2015 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Naoufel Kharroubi, Hamza Gharsellaoui
2015 ch.
Complex System Modelling and Control Through Intelligent Soft Computations
Hamza Gharsellaoui, Samir Ben Ahmed
2015 conf
ICSOFT-EA
Atef Gharbi, Nadhir Ben Halima, Hamza Gharsellaoui
2015 C conf
ICIS
Hamza Gharsellaoui, Ismail Ktata, Naoufel Kharroubi, Mohamed Khalgui
2014 conf
GECCO (Companion)
Hamza Gharsellaoui, Hamadi Hasni, Samir Ben Ahmed
2014 conf
ICSOFT EA
Atef Gharbi, Hamza Gharsellaoui, Samir Ben Ahmed
2014 conf
PECCS
Hamza Gharsellaoui, Mohamed Khalgui, Samir Ben Ahmed
2014 C conf
ISPDC
Hamza Gharsellaoui, Samir Ben Ahmed
2014 conf
ICSOFT PT
Hamza Gharsellaoui, Atef Gharbi, Samir Ben Ahmed
2013 C conf
ICSOFT
Hamza Gharsellaoui, Mohamed Khalgui, Samir Ben Ahmed
2013 C conf
ICSOFT
Atef Gharbi, Hamza Gharsellaoui, Mohamed Khalgui, Samir Ben Ahmed
2013 conf
ICSOFT (Selected Papers)
Hamza Gharsellaoui, Samir Ben Ahmed
2013 J jnl
Int. J. Syst. Dyn. Appl.
Hamza Gharsellaoui, Mohamed Khalgui, Samir Ben Ahmed
2012 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Hamza Gharsellaoui, Mohamed Khalgui, Samir Ben Ahmed
2012 J jnl
Int. J. Syst. Dyn. Appl.
Hamza Gharsellaoui, Mohamed Khalgui, Samir Ben Ahmed
2012 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Hamadi Hasni, Hamza Gharsellaoui
2012 J jnl
Int. J. Adv. Pervasive Ubiquitous Comput.
Hamza Gharsellaoui, Hamadi Hasni
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.")