A shell script to synchronize files between a remote FTP server and your local server/computer.
A file containing the hash of the name of each downloaded file will prevent re-download a file even if it is not present in the destination directory.
You can also apply a filter to search for files with a regular expression.
Because this script only need wget, it is ideal for those with a seedbox or a shared seedbox to synchronize with a NAS (Synology Qnap D-Link) or a local computer...
With the sqlite3 HASH_STORAGE, the process performance will be improved!.
Before reporting an issue, please read the Troubleshooting page.
To be notified of new releases you can Star / Watch the project.
- Installation instructions.
- Configuration instructions.
- Usage instructions.
Each time the script is executed, a log file is created.
Here is an example :
FTP Sync v3.1 (2016/03/27 19:59:13)
--------------
Script PID: 19383
Log file: /var/log/ftp-sync/20160320120930.log
FTP sources count: 1
FTP secure: 1
Download method: curl
Resume downloads: 1
Hash type: md5
Hash storage: sqlite3
Hash file: /etc/ftp-sync/ftp-sync.db
--------------
Source: ftp://198.51.100.0:21/complete/
Destination: /tmp/seedbox/
Checking connection to ftp://198.51.100.0:21/complete/...
Successfully connected!
--------------
Process file: Burn.Notice.S06E16.VOSTFR.HDTV.XviD.avi
Hash: baf87b6719e9f5499627fc8691efbd3c
Size: 184.18 Mb
Status: Never downloaded...
Start download to /tmp/seedbox/Burn.Notice.S06E16.VOSTFR.HDTV.XviD.avi... Please wait...
File successfully downloaded!
Time spent: 00:00:48
--------------
Change the ownership recursively of 'Destination' path to ftpuser:ftpgroup
Change the access permissions recursively of 'Destination' path to 755
--------------
Finished...
Total time spent: 00:00:49The hash file looks like this :
baf87b6719e9f5499627fc8691efbd3c Burn.Notice.S06E16.VOSTFR.HDTV.XviD.aviMIT. See LICENSE for more details.