rsync : Linux Command

rsync = Remote Sync

  • This is a remote and local file synchronization tool.
  • It uses an algorithm that minimizes the amount of data copied by only moving the portions of files that have changed.
  • This is a very flexible network-enabled syncing tool.
  • Due to its ubiquity on Linux and Unix-like systems and its popularity as a tool for system scripts, it is included on most Linux distributions by default.
  • It’s faster than scp (Secure Copy) because rsync uses remote-update protocol which allows to transfer just the differences between two sets of files. First time, it copies the whole content of a file or a directory from source to destination but from next time, it copies only the changed blocks and bytes to the destination.
  • Rsync consumes less bandwidth as it uses compression and decompression method while sending and receiving data both ends.

Options used with rsync command

-v : verbose
-r : copies data recursively (but don’t preserve timestamps and permission while transferring data
-a : archive mode, archive mode allows copying files recursively and it also preserves symbolic links, file permissions, user &       group ownerships and timestamps
-z : compress file data
-h : human-readable, output numbers in a human-readable format

Installing rsync

# yum install rsync

Examples:

  • Copy/Sync Files and Directory Locally on the same machine
[root@eduguru]# rsync -zvh dbbackup.tar /home/dbbackups/

Output:
created directory /home/dbbackups
dbbackup.tar
sent 140.71M bytes  received 310 bytes  30.27M bytes/sec
total size is 160.18M  speedup is 10.10
  • Copy/Sync a directory from a local machine to a remote machine

[root@eduguru]# rsync -avz dbcackup/ root@172.16.60.12:/home/

  • Copy/Sync a directory from remote machine to local machine

[root@eduguru]# rsync -avzh root@172.16.60.12:/home/dbbackup /home/dbcakup

  • To Show Progress While Copy/Transferring Data with rsync

To show the progress while transferring the data from one machine to a different machine, we can use ‘–progress’ option for it. It displays the files and the time remaining to complete the transfer.

    
  [root@eduguru]# rsync -avzhe ssh --progress dbbackup/ root@172.16.60.12:/root/backup

Leave a Reply