rsync
rsync is a utility for transferring and synchronizing files between a computer and a storage drive and across networked computers by comparing the modification times and sizes of files. It is commonly found on Unix-like operating systems and is under the GPL-3.0-or-later license.
Original author(s) | Andrew Tridgell, Paul Mackerras |
---|---|
Developer(s) | Wayne Davison |
Initial release | June 19, 1996 |
Stable release | |
Preview release | |
Repository | |
Written in | C |
Platform | Cross-platform |
Type | Data transfer, differential backup |
License | 2007: GPL-3.0-or-later 2007: GPL-3.0-only 2007: GPL-2.0-only 1996: GPL-2.0-or-later |
Website | rsync |
rsync is written in C as a single threaded application. The rsync algorithm is a type of delta encoding, and is used for minimizing network usage. Zstandard, LZ4, or Zlib may be used for additional data compression, and SSH or stunnel can be used for security.
rsync is typically used for synchronizing files and directories between two different systems. For example, if the command rsync local-file user@remote-host:remote-file
is run, rsync will use SSH to connect as user
to remote-host
. Once connected, it will invoke the remote host's rsync and then the two programs will determine what parts of the local file need to be transferred so that the remote file matches the local one. One application of rsync is the synchronization of software repositories on mirror sites used by package management systems.
rsync can also operate in a daemon mode (rsyncd), serving and receiving files in the native rsync protocol (using the "rsync://" syntax).