How to use rsync
So what is unique about rsync?
It can perform differential uploads and downloads (synchronization) of files across the network, transferring only data that has changed. The rsync remote-update protocol allows rsync to transfer just the differences between two sets of files across the network connection.
How do I install rsync?
Use any one of the following commands to install rsync.
If you are using Debian or Ubuntu Linux, type the following command
# apt-get install rsync
$ sudo apt-get install rsync
If you are using Red Hat Enterprise Linux (RHEL), type the following command
# up2date rsync
If you are using CentOS/Fedora Core Linux, type the following command
# yum install rsync
Always use rsync over ssh
Since rsync does not provide any security while transferring data it is recommended that you use rsync over ssh . This allows a secure remote connection. Now let us see some examples of rsync.
rsync command common options
- –delete : delete files that don’t exist on sender (system)
- -v : Verbose (try -vv for more detailed information)
- -e “ssh options” : specify the ssh as remote shell
- -a : archive mode
- -r : recurse into directories
- -z : compress file data
Task : Copy file from a local computer to a remote server
Copy file from /www/backup.tar.gz to a remote server called unixmen.net
$ rsync -v -e ssh /www/backup.tar.gz email@example.com:~Output:
sent 19099 bytes received 36 bytes 1093.43 bytes/sec
total size is 19014 speedup is 0.99
Please note that symbol ~ indicate the users home directory (/home/jerry).
Task : Copy file from a remote server to a local computer
Copy file /home/jerry/webroot.txt from a remote server unixmen.net to a local computer /tmp directory:
$ rsync -v -e ssh firstname.lastname@example.org:~/webroot.txt /tmp
Task: Synchronize a local directory with a remote directory
$ rsync -r -a -v -e “ssh -l jerry” –delete unximen.net:/webroot/ /local/webroot
Task: Synchronize a remote directory with a local directory
$ rsync -r -a -v -e “ssh -l jerry” –delete /local/webroot unixmen.net:/webroot
Task: Synchronize a local directory with a remote rsync server
$ rsync -r -a -v –delete rsync://rsync.unixmen.net/cvs /home/cvs
Task: Mirror a directory between my “old” and “new” web server/ftp
You can mirror a directory between my “old” (my.old.server.com) and “new” web server with the command (assuming that ssh keys are set for password less authentication)
$ rsync -zavrR –delete –links –rsh=”ssh -l vivek” my.old.server.com:/home/lighttpd /home/lighttpd
rsync for Windows server/XP
Please note if you are using Windows, try any one of the program: