rsync

from Wikipedia, the free encyclopedia
rsync
Basic data

Maintainer Wayne Davison
developer Andrew Tridgell
Publishing year June 19, 1996
Current  version 3.2.0
( June 19, 2020 )
operating system Unix , Linux , macOS , Windows , OS / 2
programming language C.
category synchronization
License GPL ( Free Software )
rsync.samba.org

rsync is both a network protocol and a program under the GPL for synchronizing data, mostly over a computer network . With rsync, synchronization is only unidirectional, i.e. from a source directory to a target directory.

An important feature of rsync is that it can not only copy entire files, but also parts of files. If a file has been changed on the source data carrier, only the changed parts of this file are transferred to the target system ( delta coding ), which saves time. rsync was developed by Paul Mackerras and Andrew Tridgell from the Samba team , among others .

functionality

Rsync transfers a file (the source file) from a server to a destination file on a client . If this target file already exists, rsync checks whether it has changed compared to the source file and then aligns the target file with the source.

To do this, the client first divides the target file into blocks of a certain length, for each of which two checksums are formed and transmitted to the server. The first of these checksums is rolling and therefore suitable for the server to quickly track down a possibly shifted byte sequence with the same checksum in the source file. However, since it is prone to collisions , the second checksum is first tested if they match. In contrast to the rolling checksum, a collision is practically impossible with the second checksum, but its calculation is much more complex. This second checksum was calculated in the original draft using the MD4 method; MD5 has been used instead since the 3.0.0 release of rsync .

With the checksums, the server generates instructions on how a copy of the source file can be generated from the data blocks of the target file. Shift rules are transferred for blocks that already exist on the target system. Only data that cannot be composed of blocks from the target file is sent directly. By following these rules, the client now receives an exact copy of the source file.

For communication is TCP - Port 873 is used. Access via a remote shell - such as SSH (encrypted) or rsh (unencrypted) - is also possible without any problems.

Applications

The main areas of application of rsync are data backup and mirror servers , such as B. with rsnapshot and data transfer for moving the software to a new hardware. Also for a data synchronization to company branch offices with a low data rate of the network connection, e.g. B. ISDN / ADSL , it is suitable. rsync is compatible with rcp , and can therefore be used for cvs be used - provided a rsyncd server is present. rsync itself does not know any encryption, but this can be done by ssh .

rsync is available for all common Unix operating systems and OS / 2 ; on the basis of Cygwin , it can also run on Windows systems.

There are also other programs - also graphical ones - such as Unison ( GTK + / Win ), DeltaCopy (Win) or RsyncX ( macOS ) that support the rsync protocol. The current version of RsyncX only supports an outdated version of rsync.

rdiff-backup

The rsync algorithm is used in the rdiff-backup backup solution . This software is offered for Linux, macOS and Windows.

This means that files or directories on local or remote computers can be saved in a backup mirror. In addition, any older version of a file or directory can be restored, as rdiff-backup saves reverse deltas in a space-saving manner - only those parts of the source files that have changed are transferred. This makes rdiff-backup the preferred backup software for large files that change little (e.g. e-mail inboxes on the local computer, virtual machines).

With the archfs tool , a backup directory created with rdiff-backup can be integrated as a virtual hard disk ("mount"). All saved data are now accessible as "snapshots", similar to Rsnapshot and Back In Time.

Graphic interfaces

Linux

As part of the GAdmintools collection , GADMIN RSYNC is a graphical user interface for the administration of the rsync server and its clients.

Rsync is also used as the basis for BackInTime - a simple graphical backup software similar to Apple's Time Machine .

Further graphical interfaces can be found in the Linux versions of QtdSync and Unison .

macOS

In addition to Unison, the open source applications arRsync and grsyncx are available under macOS as a graphical user interface .

Windows

Graphical user interfaces for Windows - which support both client and server or daemon functions - are, for example, DeltaCopy , QtdSync or Unison .

Hard Link Backup (formerly RsyncBackup ) provides similar functionality as rsync (e.g., hard links ), and may be used for local fuse. However, it is not compatible with rsync and therefore cannot be used as a client for an Rsync server.

With Acrosync , there has recently been an independent Win32 -Rsync implementation that is not based on the rsync source code.

Rsync also runs with Cygwin , a Posix API and tool collection for Windows, as well as with the help of the Windows Subsystem for Linux .

See also

Web links

Individual evidence

  1. NEWS for rsync 3.2.0 . (English, accessed June 21, 2020).
  2. ^ The rsync Open Source Project on Open Hub: Languages ​​Page . In: Open Hub . (accessed October 30, 2018).
  3. The rsync algorithm / Checksum searching (English)
  4. The rsync algorithm (English)
  5. http://rsync.samba.org/ftp/rsync/src/rsync-3.0.0-NEWS
  6. rsync and server relocation (II)
  7. rdiff-backup
  8. archfs in the Ubuntu manual (accessed April 12, 2014)
  9. a b Download of QtdSync , a graphical user interface for Windows and Linux (English and German speaking)
  10. a b c Unison website with a graphical user interface for Windows, Linux and Mac OS x
  11. arRsync website
  12. grsyncx source code on GitHub
  13. Website of DeltaCopy , a graphical user interface for Windows (in English)
  14. HardlinkBackup
  15. Acrosync