Using rsync to copy / synchronize files or backups between Linux / BSD / Unix servers
Many of us have already taken advantage of the powerful
Rsync proggie, however I'm quite sure there are still people who never used
rsync to transfer files between servers.. That's why I came with this small post to possibly introduce rsync to my blog readers.
Why
Rsync and not
Scp or
SFTP? Well
Rsync is designed from the start for large files transfer and optimized to do the file copying job really efficient. Some tests with
scp against rsync will clearly show rsync's superiority.
Rsync is also handy to contiue copying of half copied files or backups and thus in many cases saves bandwidth and machine hdd i/o operations.
The most simple way to use
rsync is:
server:~# rsync -avz -e ssh remoteuser@remotehost:/remote/directory /local/directory/
Where
remoteuser@remotehost -- is the the username and hostname of remote server to copy files to.
/remote/directory -- is the directory where the rsync copied files should be stored
/local/directory -- is the local directory from which files will be copied to remote directory
If not a preliminary passwordless ssh key (RSA / DSA) authentication is configured on remote server, the above command will prompt for a password otherwise the rsync will start doing the transfer.
If one needs to have a
RSA or DSA (public / private key) passwordless SSH key authentication , a RSA key first should be generated and copied over to the remote server, like so:
server:~# ssh-keygen -t dsa
...
server:~# ssh-copy-id -i ~/.ssh/id_dsa.pub root@remotehost
...
That's all folks, enjoy
rsyncing ;)