In this article, we are going to discuss some of the commonly used Rsync command examples that will familiarise you with rsync & help you get started with using rsync command.

Rsync command is used for transferring files on Linux machines from one system to another. It uses a method of incremental file transfer for copying the files & since the file transfer is incremental, only the difference among the two files is copied & not the complete file as is the case with other tools like scp. Rsync is very lightweight, it is fast as well as secure & also uses very low bandwidth for data copy.

Now before we move onto the rsync command examples, let discuss its installation.

Recommended Read: SpeedTest-CLI: Run network speedtest on Linux CLI

Also Read: Complete guide for mounting drives in Linux systems

Installation

Though it’s usually is installed on almost all Linux distributions, one can install it using the following commands,

CentOS/RHEL/Scientific Linux/Oracle Linux/ Amazon Linux

# yum install rsync

Fedora

# dnf install rsync

Debian/Ubuntu/Linux Mint

# apt-get install rsync


Rsync Command Examples


Rsync command can be used with the following syntax,

rsync options source destination

Now let’s discuss some rsync examples,

1- Syncing directories on the Local system

Use the following command to sync a directory to another on the same system,

# rsync -arv /home/user /data/user

Here, option ‘a’ is for ‘archive’, meaning it will preserve all the permissions , links , dates etc

option ‘r’ is for ‘recursive’ meaning it will copy all directories & sub-directories

& option ‘v’ is ‘verbose’, meaning it will show output on the screen of what is being copied.

 

2- Syncing a local directory to a remote directory

Now this is the mostly used use-case for rsync command & can be used to taking backup of a system to another machine. Use the following example to sync local folder to remote machines,

# rsync -zvh /home/user testuser@10.10.1.10:/data/user

here, option ‘z’ is used for compressing of data during the transfer,

& option ‘h’ is used for printing the output in human-readable format.

 

3- Syncing a remote directory to a local directory

It is the reverse of the above command. Use the following command,

# rsync -azP testuser@10.10.1.10:/home/user /data/user

here, option ‘P’ is used to show a progress bar for data copy. We can also use ‘--progress’ instead of ‘P’ flag.

 

4- Secure syncing of data using rsync with ssh

If we need a secure connection with proper encryption to copy the data, we can use the ssh protocol with rsync command. Use the following rsync example as reference,

# rsync -avz -e ssh testuser@10.10.1.10:/home/user /data/user

now after entering the password, the file transfer will be started & will be completely secure.

 

5- Sync only the directory structure

If we need to copy only the tree structure i.e. how directories & sub-directories are created & does not need to copy the files inside those directories, we can use the option ‘d’,

# rsync -d testuser@10.10.1.10:/home/user /data/user

 

6- Include or Exclude files during syncing

We can also include some files with a pattern & exclude other files using include & exclude options,

# rsync -avzh –include ‘*.txt’ --exclude ‘*’ /home/user testuser@10.10.1.10:/data/user

here in this example, we are only copying .txt files & excluding all other files.

 

7- Limiting the file size

With option ‘max-size’, we can also impose a limit on the size of the files that will be synced. Use the following example,

# rsync -arv –max-size=’100K’ /home/user /data/user

 

8- View the difference of files at source & destination

Rsync also provides option to check differences in the files at source & destination. This can be done using the option ‘i’,

# rsync -avzi /home/user /data/user

Now we should get output like,

>f.st.... Dan

.f....og. Susan

Here, the alphabets mentioned before the file name ‘Dan’ & ‘Susan’ tells what the difference in both files are,

f means that it is a file.

s means that there is size change.

t means change in timestamp.

o means change in ownership.

g means a change of group.

 

9 - Get the complete list of options

To get the complete list of  options that can be used with Rsync, run the following command,

# rsync --help

rsync command examples

Now, these were only some commonly used rsync command examples & there are many other rsync options that can be used but these will get you started. Please do let us know about any query or question you have regarding this tutorial using the comment box below.

If you think we have helped you or just want to support us, please consider these:-

Connect to us: Facebook | Twitter

Linux TechLab is thankful for your continued support.