Blogs‎ > ‎

Simplifying Rsync with Grsync and Gnome-Schedule

posted 26 Jun 2015, 06:15 by Andrew at Lycom   [ updated 26 Jun 2015, 06:16 ]
I use rsync to sync data between locations, mainly creating mirror copies of data pools. Generally, I find it a 'set-and-forget' option - it works and you don't need to intervene once set up. However, it means that I am usually a bit rusty at doing it when i come to set it up on a new system. I found some Linux applications to streamline the testing process.

Gnome Schedule


A handy utility for setting up Crontab entries, for those of us who easily get the syntax wrong!

To run as root I found I needed to do:

# sudo gnome-schedule

which gives you the 'change user' dialogue box (I was editing root's crontab).

Grsync


I found this useful for testing my rsync configurations, the key is to create a new 'session' and then add your source and destination:

Source: /home/localdir/

Destination: admin@server.ip:/remote/dir/path/

I used the following options:

  • delete on destination
  • show transfer progress
  • ignore existing
  • preserve time
  • advanced options with: -e ssh
I have previously set up saved ssh keys so that I can ssh to the remote box without entering a passphrase.

Test with 'Simulation' and then do 'Execute' to run a complete rsync.

Scheduling your Rsync

The docs say to use

grsync -e sessionname

This worked for me as an interactive script, but failed as a cron jon (probably a paths / environment issue). So what I did was to run an 'Execute' of Grsync and in the confirmation window open out the 'Rsync output' toggle which gives you the full rsync output:


*** Launching RSYNC command:
rsync -r -t -v --progress --delete --ignore-existing -e ssh /home/local.dir/ admin@server.ip:/remote/dir/path/

Then in Gnome Schedule for root, create a cron job that executes the command

rsync -r -t -v --progress --delete --ignore-existing -e ssh /home/local.dir/ admin@server.ip:/remote/dir/path/

and this then worked perfectly for me.