A directory/file syncing program with multi-core support.
- Sync directories/files to other local directories or networked directories with SFTP
- Live scans to detect changes in source files to automatically re-sync destination files
- Sync to multiple local or networked directories (mirrors source files to multiple directories)
- Optional batched multi-core support
- Optionally ignore specific directories/files during synchronization
- Support for crc32, adler32, md5, sha1, sha224, sha256, sha384, sha512 checksums
You can either manually create the settings.ini file based on the provided one, or generate one using the setup utility.
- Running the setup utility for settings.ini:
Run the python module with the following launch parameter:
--setup
- Manually setup settings.ini:
Open the settings.ini file provided in the repository and modify the data as needed.
- As a module:
python FileSync/
--h/--help: Displays all the available commands to the user.
--setup: Initializes setup mode which provides an interactive settings.ini creation utility
--debug: Enables debug print messages.
--quiet: Suppresses all standard output messages. This is preferable for a headless environment.
--benchmark: Enables benchmarking file/directory processes.
--no-live-scan: Disables live scanning for changes in the directories which makes the program only sync once.
--multi: Enables multi-core processing (not recommended for small directories).
--batch-size <int>: Sets the batch size for multi-core processing, if enabled (recommended - 100+ for large quantities of data)
--scan-interval <int>: Sets the time interval in seconds between directory scans (recommended - 2-5s)
--clear-targets: Clears destination directories before starting synchronizations
--hash <algorithm>: Sets the hashing algorithm to use for checksums (recommended - sha256).
Supported hashing algorithms: [adler32, crc32, md5, sha1, sha224, sha256, sha384, sha512]
--use-sftp: Enables SFTP server connectivity (use with --username/--password command)
--username: Sets the username for sftp server communication
--password: Sets the password for sftp server communication
- Python 3.7+
- paramiko (only if SFTP is used)
pip install -r requirements.txt