This is a simple program that synchronizes two folders: source and replica. The program maintains a full, identical copy of source folder at replica folder. The program is written in Python.
The program is designed to be run from the command line. It takes four arguments: source folder path, replica folder path, synchronization interval and logs path. The program synchronizes the folders every time the interval expires. The program logs file creation/copying/removal operations to a file and to the console output.
- Synchronization is one-way: after the synchronization content of the replica folder is modified to exactly match content of the source folder;
- Synchronization is performed periodically;
- File creation/copying/removal operations are logged to a file and to the console output;
- Folder paths, synchronization interval and log file path are provided using the command line arguments;
Inside a folder of your choice, clone the repository from command line:
git clone https://github.com/ivanSantos16/sync2folders
You can run the program from the command line and ask for help with the script variables:
python sync2folders -h
usage: __main__.py [-h] -s SOURCE -r REPLICA -p PERIOD -l LOGS
Synchronizes two folders: source and replica
options:
-h, --help show this help message and exit
-s SOURCE, --source SOURCE
Source folder path
-r REPLICA, --replica REPLICA
Replica folder path
-p PERIOD, --period PERIOD
Period of time in seconds between each synchronization
-l LOGS, --logs LOGS Logs file path
source
: Source folder path (required) [string]replica
: Replica folder path (required) [string]period
: Period of time in seconds between each synchronization (required) [int]logs
: Logs file path with extension file (required) [string]
First example:
python sync2folders -s <source_folder_path> -r <replica_folder_path> -p <sync_interval> -l <log_file_path>
python sync2folders -s source -r replica -p 10 -l logs/logs.txt
Second example:
python sync2folders --source <source_folder_path> --replica <replica_folder_path> --period <sync_interval> --logs <log_file_path>
python sync2folders --source source --replica replica --period 10 --logs logs/logs.txt
From command line, install the package with pip:
python -m pip install sync2folders
From anywhere, you can run the program from the command line and ask for help with the script variables:
python -m sync2folders -h
usage: __main__.py [-h] -s SOURCE -r REPLICA -p PERIOD -l LOGS
Synchronizes two folders: source and replica
options:
-h, --help show this help message and exit
-s SOURCE, --source SOURCE
Source folder path
-r REPLICA, --replica REPLICA
Replica folder path
-p PERIOD, --period PERIOD
Period of time in seconds between each synchronization
-l LOGS, --logs LOGS Logs file path
source
: Source folder path (required) [string]replica
: Replica folder path (required) [string]period
: Period of time in seconds between each synchronization (required) [int]logs
: Logs file path (required) [string]
First example:
python -m sync2folders -s <source_folder_path> -r <replica_folder_path> -p <sync_interval> -l <log_file_path>
python -m sync2folders -s source -r replica -p 10 -l logs/logs.txt
Second example:
python -m sync2folders --source <source_folder_path> --replica <replica_folder_path> --period <sync_interval> --logs <log_file_path>
python -m sync2folders --source source --replica replica --period 10 --logs logs/logs.txt