Ubuntu Server and Rsync – SSH into remote server and download latest files except files with a .part extension and email output

After reading through a bunch of troubleshooting threads, the following:

  1. Runs a shell  script via cron
  2. SSH into a remote server using a SSH key for a password
  3. Executes Rysnc with the options to delete source files after download, and skip files with the extension .part

Bash Script:

#!/bin/sh

/usr/bin/rsync -havzPe 'ssh -i /home/alex/.ssh/id_rsa' --rsync path='/usr/bin/rsync' --remove-source-files --exclude='*.part' --stats bob@10.10.10.10:/home/alex/target /home/alex | /usr/bin/mail -s 'Rsync Output' root

Link Explain Shell

Crontab consisted of the following:

0 */2 * * * /home/alex/sync.sh >/dev/null 2>&1

This runs the shell script every 2 hours.  This was created using a this crontab generator.

Generating a SSH key for passwordless SSH login and exporting it remotely is explained here.

Generate the keys on your host server:

ssh-keygen -t dsa

Export the keys to the target server:

ssh-copy-id -i ~/.ssh/id_dsa.pub ross@remotehost [or enter ip address instead of hostname, e.g."remotehost"]

Configure email server so mail command works.

Digital Ocean’s Guide to PostFix