What is rsync command in Linux
RYNC is one of the most useful tools of Linux. rsync can copy or synchronize files locally as well as remotely. It can be used for mirroring of data or backup of data across network, locally, over multiple disks. RYNC has inbuilt capability to utilize less bandwidth while copying data, as it copies only difference between two files. Also rsync can compress and decompress data which makes it more efficient utility.
Install rsync
First check whether rsync is installed in your system or not.
rpm –q rsync
If not installed, install it using yum command.
yum install rysnc
Note: rsync should be installed in both local and remote machine, so as use it for data transfer between both systems.
Linux: use of RSYNC command with example
Local sync or copy files or directories
If you want to sync or copy files on local system use
Syntax
rsync file_to_sync location_for_sync
Example
rsync test.doc /home/ap/test/
In case destination directory does not exist, a new directory will be created.
Now for sync / create copy of directory use command.
Syntax
rsync –r directory_to_sync location_for_sync
Example
rsync –r /home/ap/test/ /temp/backup
Use of –r switch means recursively sync directory. But using –r does not sync modified date, ownership, permissions, groups, etc. of the files.
To sync files with modified date, ownership, permissions, groups, etc. of the files use –a switch (archive switch).
Syntax
rsync –a directory_to_sync location_for_sync
Example
rsync –a /home/ap/test/ /temp/backup
Also note in source directory has a trailing / (slash), this slash means all contents of test folder will be copied to backup folder. If trailing slash is not used then backup directory will have test folder inside it and test folder will have all of its contents within itself.
Remote sync or copy files or directories
Sync or copy from local host to remote server
First command we use is for copying data from local to remote server.
Syntax
rsync –a directory_to_sync username@remote_host:location_for_sync
Example
rsync –a /home/ap/test/ root@192.168.1.17:/temp/backup
Sync or copy from remote server to local host
Here we will copy files from remote server to local folder.
Syntax
rsync –a username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –a root@192.168.1.17:/temp/backup /home/ap/test/
Sync/copy file using rsync with SSH
rsync has capability to use SSH for copy/sync file or folders from local to remote server. When using SSH your password will be send in encrypted form. Your password is safer this way. Also data copied is also encrypted while being transferred.
Sync or copy from local host to remote server
Syntax
rsync –ae ssh local_directory_to_sync username@remote_host:location_for_sync
Example
rsync –ae ssh /home/ap/test/ root@192.168.1.17:/temp/backup
Sync or copy from remote server to local host
This command will copy/sync files from remote location to local host
Syntax
rsync –ae ssh username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –ae ssh root@192.168.1.17:/temp/backup /home/ap/test/
Use rsync with progress and partial
When using rsync with progress switch, you are shown transfer speed and time for transfer
Syntax
rsync –a –progress username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –a --progress root@192.168.1.17:/temp/backup /home/ap/test/
Another switch available with rsync is partial, it allows you to download partial files which later can be continued later. By default rsync doesn’t keep partial downloads.
Syntax
rsync –a –partial username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –a --partial root@192.168.1.17:/temp/backup /home/ap/test/
Also –P switch is available, using it will result in combined impact of partial as well progress switch.
Syntax
rsync –aP username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –aP root@192.168.1.17:/temp/backup /home/ap/test/
Use of –delete option with rsync
The –delete switch when used for sync of files from remote location will remove files which are present at local folder but not available at remote destination
Syntax
rsync –aP –delete username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –aP –delete root@192.168.1.17:/temp/backup /home/ap/test/
Compress file to reduce transfer data
Syntax
rsync –azP username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –azP root@192.168.1.17:/temp/backup /home/ap/test/
Set limit for file size to be synced
Maximum file size can be specified at time of executing rsync command. It can be done by use of switch –max-size
Syntax
rsync –azP –max-size=’size’ username@remote_host:location_for_sync local_directory_to_sync
Example
rsync –azP –max-size=’500k’ root@192.168.1.17:/temp/backup /home/ap/test/
This command will transfer file size below 500kb