rsync
A fast, versatile file-copying tool.
rsync transfers files between local and remote directories while sending only the differences between source and destination. The rsync algorithm by Andrew Tridgell uses rolling checksums to identify which blocks of a file have changed and transmits only those blocks, which makes incremental backups and synchronisations across slow links dramatically more efficient than naive file copying.
Tridgell originally wrote rsync as part of the Samba project in 1996; rsync subsequently became its own project. Paul Mackerras has been a long-running co-maintainer. The protocol has been through several revisions, but the on-the-wire format has remained backward-compatible across decades, which is why a modern rsync can interoperate with rsync 2.x daemons that may still be running on legacy systems.
rsync is one of the most universally available Unix utilities, used everywhere from individual user backups (rsync --archive --progress source dest) to massive scientific-data distributions (CERN, NCBI, Linux kernel mirrors). The "rsync over SSH" idiom is the canonical way to back up to a remote host, and rclone, BorgBackup, and restic all draw conceptual inspiration from rsync.
Install
Debian/Ubuntu: sudo apt install rsync Fedora/RHEL: sudo dnf install rsync Arch: sudo pacman -S rsync macOS: brew install rsync
Authors
- Andrew Tridgell, Paul Mackerras (creators)
- rsync development team