/ftpgrab

⚡ Shell script to grab your files from a remote FTP server to your NAS / server / computer

Primary LanguageShellMIT LicenseMIT

GitHub release Build Status Code Quality Donate Paypal

About

FTPGrab (formerly FTP Sync) is a shell script to grab your files from a remote FTP server to your NAS / 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 sqlite3 HASH_STORAGE, the process performance will be improved!.

You can install FTPGrab using Docker !
An official docker image 🐳 is available for FTPGrab. For more info, have a look on the docker repository.

Before reporting an issue, please read the Troubleshooting page.

Documentation

Logs

Each time the script is executed, a log file is created prefiexd by the config used.
Here is an example :

FTPGrab v4.1 (seedbox - 2017/03/15 01:41:49)
--------------
Config: seedbox
Script PID: 19383
Log file: /var/log/ftpgrab/seedbox-20170315014149.log
FTP sources count: 1
FTP secure: 1
Download method: curl
Resume downloads: 1
Hash type: md5
Hash storage: sqlite3
Hash file: /opt/ftpgrab/hash/seedbox.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:49

The hash file looks like this if you used text as HASH_STORAGE :

baf87b6719e9f5499627fc8691efbd3c Burn.Notice.S06E16.VOSTFR.HDTV.XviD.avi

How can i help ?

All kinds of contributions are welcomed 🙌!
The most basic way to show your support is to star 🌟 the project, or to raise issues 💬
But we're not gonna lie to each other, I'd rather you buy me a beer or two 🍻!

Paypal

License

MIT. See LICENSE for more details.
Icon credit to Nick Roach.