Introduction
Rsync, which stands for remote sync, is a file synchronization tool remotely and locally. It uses an algorithm that minimizes the amount of data that is copied by simply moving the portions of files that have changed.
History Of Rsync
Andrew Tridgell and Paul Mackerras wrote the original rsync, which was first announced on 19 June 1996. Tridgell discusses the design, implementation and performance of rsync in chapters 3 through 5 of his Ph.D. thesis in 1999. It is currently maintained by Wayne Davison.
What Is Rsync?
Rsync is a very flexible network-enabled synchronization tool. It can also refer to a network protocol that was developed to utilize this tool.
Rsync is a widely-used utility to keep copies of a file on two computer systems the same. It is commonly found on Unix-like systems and functions as both a file synchronization and file transfer program. The rsync algorithm, a type of delta encoding, is used to minimize network usage. Zlib may be used for additional compression, and SSH or stunnel can be used for data security.
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.
Rsync Examples
In this guide, we will cover the basic usage of this powerful utility. We will be using an CentOS 6 VPS in the examples, but you can use any modern Linux distribution to follow along.
How To Use Rsync
Rsync basic syntax is very straight forward, and operates in a manner similar with ssh, scp, and cp.
We will create two directories test and some of the test file with the following command:
cd ~
mkdir test1
mkdir test2
touch test2/file{1..100}We now have a directory called test1 with 100 empty file in it.
ls test1and the output will look like this
file1    file15  file21  file28  file34  file40  file47  file53  file6   file66  file72  file79  file85  file91  file98
file10   file16  file22  file29  file35  file41  file48  file54  file60  file67  file73  file8   file86  file92  file99
file100  file17  file23  file3   file36  file42  file49  file55  file61  file68  file74  file80  file87  file93
file11   file18  file24  file30  file37  file43  file5   file56  file62  file69  file75  file81  file88  file94
file12   file19  file25  file31  file38  file44  file50  file57  file63  file7   file76  file82  file89  file95
file13   file2   file26  file32  file39  file45  file51  file58  file64  file70  file77  file83  file9   file96
file14   file20  file27  file33  file4   file46  file52  file59  file65  file71  file78  file84  file90  file97We also have an empty directory called test2. To align the contents of test1 to test2 on the same system, type:
rsync -avz test1/ test2The meaning of option:
-a = option is a combination flag
-v = increase verbosity
-z = reduce the network transfer by adding compression
-e = specify the remote shell to use
How To Use Rsync to Sync with a Remote and Local system
from local to remote system
# rsync -avz -e 'ssh -p sshport' folder/file nameuser@ipORhostname:/destinationfolderexamples:
# rsync -avz -e 'ssh -p 22' devel/*tgz root@192.168.1.11:/home/servermox This command will transfer all files in the folder devel to /home/servermox to remote system
from remote to local system
# rysnc -avz -e 'ssh -p sshport' nameuser@ipORhostname:/originfolderORfile /destinationfolderexamples:
# rysnc -avz -e 'ssh -p 22' root@192.168.1.21:/home/servermox/* /homeThis command will transfer all files in the folder /home/servermox/ from remote system to /home folder at local system
wish you luck!
 
