Original author(s) | Andrew Tridgell, Paul Mackerras |
---|---|
Developer(s) | Wayne Davison |
Initial release | June 19, 1996 |
Stable release | 3.1.2 (December 21, 2015 | )
Repository | git |
Development status | active |
Written in | C |
Platform | Unix-like, Windows |
Type | Data transfer, Differential backup |
License | GNU GPLv3 |
Website | rsync |
rsync is a utility for efficiently transferring and synchronizing files across computer systems. It is commonly found on Unix-like systems and functions as both a file synchronization and file transfer program. The rsync algorithm is a type of delta encoding, and is used for minimizing network usage. Zlib may be used for additional compression, and SSH or stunnel can be used for data 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 file need to be transferred over the connection.
Rsync can also operate in a daemon mode, serving files in the native rsync protocol (using the "rsync://" syntax).
It is released under version 3 of the GNU General Public License.
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.
Because of the flexibility, speed, and scriptability of rsync
, it has become a standard Linux utility, included in all popular Linux distributions. It has been ported to Windows (via Cygwin, Grsync, or SFU), FreeBSD, NetBSD, OpenBSD, and macOS.
Similar to rcp
and scp
, rsync
requires the specification of a source and of a destination; either of them may be remote, but not both.