Use rsync to copy from files from destination
host to source host (rsync reverse copy) / few words on rsync
I've recently had to
set up a backup system to synchronize
backup archive files between two remote servers and as I do
usually with this situation I just set up a crontab job to
periodically execute rsync to copy data from
source server
to the destination server . Copying
SRC to DEST is the
default behaviour rsync uses, however in this case I had to
copy
from the destination server to the
source server host
(in other words sync files the reversely.
The usual way to copy with rsync via SSH (from SRC to DEST) is
using a cmd line like:
debian:~$ /usr/bin/rsync -avz -e ssh
backup-user@xxx.xxx.xxx.xxx:/home/backup-user/my-directory
.
Where the
xxx.xxx.xxx.xxx is my remote server IP with which
files are synched.
According to
rsync manual, the proposed docs SYNOPSIS is in
the format;
Local: rsync [OPTION...] SRC... [DEST
Obviusly the default way to use rsync is to copy source to
destination which I used until now, but in this case I had to the
other way around and copy files from a
destination host to
the
source server. It was logical that swapping the SRC and
DEST would complete my required task. Anyways I consulted with some
rsync gurus in
irc.freenode.net , just to make sure it is
proper to just swap the SRC, DEST arguments.
I was told this is possible, so I swapped args;
debian:~$ /usr/bin/rsync -avz -e ssh .
backup-user@xxx.xxx.xxx.xxx:/home/backup-user/my-directory
...
Surprisingly this worked
Anyways I was
adviced by by a good guy nick named
scheel , that putting
-e ssh to command line is generally unnecessery except if
there is no some uncommon used SSH port over which the data is
transferred. An example case in which
-e 'ssh is necessery
would be if transferring via lets say SSH port 1234;
rsync -avz -e 'ssh -p1234' /source
user@host:/dest
In all other cases omitting '-e ssh' is better as '-e ssh' is rsync
default. Therefore my final swapped line I put in cron to
copy
from a destinatio to source host with rsync looked like
so:
05 03 2 * * /usr/bin/ionice -c 3 /usr/bin/rsync -avz
my-directory backup-user@xxx.xxx.xxx.xxx:/home/backup-user/
>/dev/null 2>&1