About rsync
Rsync is an open-source utility designed for fast and efficient file synchronization between systems. It supports incremental transfers, meaning only the differences between source and destination files are sent, saving time and bandwidth. Rsync is widely used for backups, mirroring, and data synchronization tasks across local and remote systems. It operates under the GNU General Public License and is maintained by Andrew Tridgell.
FAQ
Rsync may recopy files if the --times (-t) option is not used, causing it to compare files based on modified time. Another cause is transferring files to a Microsoft filesystem that only stores even modified times, which can be fixed with --modify-window=1. Daylight-saving time changes or filesystem changes (like case conversion or UTF-8 decomposition) can also trigger this behavior.
Rsync can handle filenames with spaces, but you must escape them on the command line to prevent the remote shell from splitting them into multiple arguments. Use quotes (e.g., host:'"a long filename"'), backslashes (e.g., host:'a\ long\ filename'), or other escaping methods to ensure the filename is treated as a single argument.
These errors occur when a startup file (like .cshrc or .bashrc) writes output during a remote-shell connection (e.g., via ssh or rsh), corrupting the rsync data stream. To test, run 'ssh remotesystem /bin/true > test.dat', if test.dat is not empty, your shell is not clean. Check startup files on the remote system for problematic scripts.
Rsync versions before 3.0.0 hold the entire file list in memory. Version 3.0.0 introduced incremental recursion to reduce memory usage, but this requires both sides to use rsync 3.0.0 or newer and avoids certain options (like --delete). If memory is an issue, break the transfer into smaller chunks using --relative or exclude rules.
This error typically occurs if the 'read only' setting for the module is not set to 'no' in the rsync daemon configuration. Ensure the module is configured with 'read only = no' to allow writes.
This error happens when transferring a file with a block size of 32816 bytes. To resolve it, manually set a different block size (e.g., --block-size=33000) or upgrade the receiving side to rsync 3.0.7.
Errors like 'rsync: error writing 4 unbuffered bytes - exiting: Broken pipe' or 'rsync error: error in rsync protocol data stream (code 12)' are often due to network issues or corrupted data streams. Check the 'issues and debugging' page for troubleshooting steps to identify the root cause.
To suppress the 'vanished files' warning, create a shell script wrapper that runs rsync and explicitly ignores exit code 24. For example, a script named 'rsync-no24' could check the exit code and force it to 0 if it equals 24.
Alternatives to consider
See all alternativesBadges
Promote rsync giving it more exposure, by adding these badges to your website, documentation, or product listing. Each badge links back to rsync page on Webfolio.
<a href="https://www.webfolio.to/tools/rsync?utm_source=badge&utm_campaign=badge" target="_blank" rel="noopener noreferrer"><img src="https://www.webfolio.to/badges/featured_color.svg" alt="Featured on Webfolio" style="max-width: 150px" /></a>
Categories
Claim this tool
Are you the founder? Claim your profile to update details and track views.