Rsync is both a network protocol and a GPL'ed program for synchronizing data, usually over a network. The synchronization runs rsync only one way, from a source directory to a destination directory from.
An important feature of rsync is that it can copy whole files, not only, but also parts of files. Has been changed on the source disk a file, only the changed parts of the file ( delta encoding ) will be transmitted to the target system. This can be especially significant savings transfer volume in the uncompressed file types and speed up the synchronization significantly. rsync is designed, among other things by Paul Mackerras and Andrew Tridgell of the Samba team.
The aim is to a file to be transferred ( source file ) from a server to a client having a destination file, which may match to a large extent to the source file.
These will be divided first by the client, the target file into blocks of a certain length, are made for the two checksums and transmitted to the server. The first of these checksums on a rolling basis and is therefore suitable for the server to quickly find an optionally -shifted sequence of bytes with the same checksum in the source file. As it is, however, susceptible to collisions with the conformity of the second checksum is tested initially. In the second sum in contrast to the rolling checksum collision is practically impossible, but its calculation is much more complex. This second checksum was calculated in the original design with the MD -4 method; since the release 3.0.0 of rsync MD -5 is used instead.
With the checksums of the server generates instructions, such as a copy of the source file can be generated from the data blocks of the target file. For existing on the target system blocks shifting provisions are transferred. Only data that can not be composed of blocks of the target file to be sent directly. In order that the client receives by following these rules, a exact copy of the source file.
By default, the TCP port 873 used for communication. But also access via a remote shell - about ssh ( encrypted) or rsh (unencrypted) - is possible.
Main applications of rsync is using data and mirrors, such as with rsnapshot. Even for a reconciliation by companies outside areas with low data rate of the network connection, such as ISDN / ADSL, it is. rsync is compatible with rcp, and can therefore also be used for cvs - provided an rsyncd server is available. Although rsync itself knows no encryption, but this can be taken over by ssh.
Rsync is available on all major Unix operating systems and OS / 2; based on Cygwin, it also runs on Windows systems.
There are other programs - even graphic - such as Unison (GTK / Win), Delta Copy ( Win) or RsyncX (Mac OS X) that support the rsync protocol. The prevailing current RsyncX version supports an outdated version of rsync.
The rsync algorithm ( as rdiff ) is used (among Mac OS X) by rdiff-backup, a backup solution for Windows, Linux, Unix. This can be backed up to a backup mirror site located on local or remote computers files or directories. Additionally, you can choose any version at any time of a directory or file restore because rdiff-backup also reverse deltas stored in a space-saving manner.
As part of the collection gadmintools there with gadmin RSYNC a GUI to administer the rsync server and its clients. rsync is also used as a base for baked Intimate, a simple visual backup software similar to Apple's Time Machine. Another GUI can be found in the Linux version of QtdSync and Unison.
Support Windows GUIs that are both client and server (" daemon" ) functions, for example, are DeltaCopy, Unison, QtdSync.
Hard Link Backup (formerly rsyncbackup ) provides functionality similar to rsync ( for example hard links ) and can be used for local backup. However, it is not compatible with Rsync and therefore can not be used as a client for a rsync server.
Mac OS X
In Mac OS X is next to Unison as a GUI software backup list and the open source software arRsync available.