Cheat sheets for Rsync
Cheat sheets for Rsync
#General
rsync Usage
rsync \[OPTION\]... SRC \[SRC\]... DEST |
rsync \[OPTION\]... SRC \[SRC\]... \[USER@\]HOST:DEST |
rsync \[OPTION\]... SRC \[SRC\]... \[USER@\]HOST::DEST |
rsync \[OPTION\]... SRC \[SRC\]... rsync://\[USER@\]HOST\[:PORT\]/DEST |
rsync \[OPTION\]... \[USER@\]HOST:SRC \[DEST\] |
rsync \[OPTION\]... \[USER@\]HOST::SRC \[DEST\] |
rsync \[OPTION\]... rsync://\[USER@\]HOST\[:PORT\]/SRC \[DEST\] |
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect to an rsync daemon, and require SRC or DEST to start with a module name.
rsync Options
Option | Description |
---|---|
--verbose, -v | increase verbosity |
--quiet, -q | suppress non-error messages |
--nomotd | suppress daemon-mode MOTD (see manpage caveat) |
--checksum, -c | skip based on checksum, not mod-time & size |
--archive, -a | archive mode; equals -rlptgoD (no -H,-A,-X) |
--no-OPTION | turn off an implied OPTION (e.g. --no-D) |
--recursive, -r | recurse into directories |
--relative, -R | use relative path names |
--no-implied-dirs | don't send implied dirs with --relative |
--backup, -b | make backups (see --suffix & --backup-dir) |
--backup-dir=DIR | make backups into hierarchy based in DIR |
--suffix=SUFFIX | set backup suffix (default ~ w/o --backup-dir) |
--update, -u | skip files that are newer on the receiver |
--inplace | update destination files in-place (SEE MAN PAGE) |
--append | append data onto shorter files |
--append-verify | like --append, but with old data in file checksum |
--dirs, -d | transfer directories without recursing |
--links, -l | copy symlinks as symlinks |
--copy-links, -L | transform symlink into referent file/dir |
--copy-unsafe-links | only "unsafe" symlinks are transformed |
--safe-links | ignore symlinks that point outside the source tree |
--copy-dirlinks, -k | transform symlink to a dir into referent dir |
--keep-dirlinks, -K | treat symlinked dir on receiver as dir |
--hard-links, -H | preserve hard links |
--perms, -p | preserve permissions |
--executability, -E | preserve the file's executability |
--chmod=CHMOD | affect file and/or directory permissions |
--acls, -A | preserve ACLs (implies --perms) |
--xattrs, -X | preserve extended attributes |
--owner, -o | preserve owner (super-user only) |
--group, -g | preserve group |
--devices | preserve device files (super-user only) |
--specials | preserve special files |
-D | same as --devices --special |
--times, -t | preserve modification times |
--omit-dir-times, -O | omit directories from --times |
--super | receiver attempts super-user activities |
--fake-super | store/recover privileged attrs using xattrs |
rsync Options contd.
Option | Description |
---|---|
--sparse, -S | handle sparse files efficiently |
--dry-run, -n | perform a trial run with no changes made |
--whole-file, -W | copy files whole (without delta-xfer algorithm) |
--one-file-system, -x | don't cross filesystem boundaries |
--block-size=SIZE | force a fixed checksum block-size |
--rsh=COMMAND, -e | specify the remote shell to use |
--rsync-path=PROGRAM | specify the rsync to run on the remote machine |
--existing | skip creating new files on receiver |
--ignore-existing | skip updating files that already exist on receiver |
--remove-source-files | sender removes synchronized files (non-dirs) |
--del | an alias for --delete-during |
--delete | delete extraneous files from destination dirs |
--delete-before | receiver deletes before transfer, not during |
--delete-during | receiver deletes during transfer (default) |
--delete-delay | find deletions during, delete after |
--delete-after | receiver deletes after transfer, not during |
--delete-excluded | also delete excluded files from destination dirs |
--ignore-errors | delete even if there are I/O errors |
--force | force deletion of directories even if not empty |
--max-delete=NUM | don't delete more than NUM files |
--max-size=SIZE | don't transfer any file larger than SIZE |
--min-size=SIZE | don't transfer any file smaller than SIZE |
--partial | keep partially transferred files |
--partial-dir=DIR | put a partially transferred file into DIR |
--delay-updates | put all updated files into place at transfer's end |
--prune-empty-dirs, -m | prune empty directory chains from the file-list |
--numeric-ids | don't map uid/gid values by user/group name |
--timeout=SECONDS | set I/O timeout in seconds |
--contimeout | set daemon connection timeout in seconds |
--ignore-times, -I | don't skip files that match in size and mod-time |
--size-only | skip files that match in size |
--modify-window=NUM | compare mod-times with reduced accuracy |
--temp-dir, -T | create temporary files in directory DIR |
--fuzzy, -y | find similar file for basis if no dest file |
--compare-dest=DIR | also compare destination files relative to DIR |
--copy-dest=DIR | ... and include copies of unchanged files |
--link-dest=DIR | hardlink to files in DIR when unchanged |
--compress, -z | compress file data during the transfer |
rsync Options cont'd.
Option | Description |
---|---|
--compress-level=NUM | explicitly set compression level |
--skip-compress=LIST | skip compressing files with a suffix in LIST |
--cvs-exclude, -C | auto-ignore files the same way CVS does |
--filter=RULE, -f | add a file-filtering RULE |
-F | same as --filter='dir-merge /.rsync-filter' repeated: --filter='- .rsync-filter' |
--exclude=PATTERN | exclude files matching PATTERN |
--exclude-from=FILE | read exclude patterns from FILE |
--include=PATTERN | don't exclude files matching PATTERN |
--include-from=FILE | read include patterns from FILE |
--files-from=FILE | read list of source-file names from FILE |
--from0, -0 | all *-from/filter files are delimited by 0s |
--protect-args, -s | no space-splitting; only wildcard special-chars |
--address=ADDRESS | bind address for outgoing socket to daemon |
--port=PORT | specify double-colon alternate port number |
--sockopts=OPTIONS | specify custom TCP options |
--blocking-io | use blocking I/O for the remote shell |
--stats | give some file-transfer stats |
--8-bit-output, -8 | leave high-bit chars unescaped in output |
--human-readble, -h | output numbers in a human-readable format |
--progress | show progress during transfer |
-P | same as --partial --progress |
--itemize-changes, -i | output a change-summary for all updates |
--out-format=FORMAT | output a change-summary for all updates |
--log-file=FILE | log what we're doing to the specified FILE |
--log-file-format=FMT | log updates using the specified FMT |
--password-file=FILE | read daemon-access password from FILE |
--list-only | list the files instead of copying them |
--bwlimit=KBPS | limit I/O bandwidth; KBytes per second |
--write-batch=FILE | write a batched update to FILE |
--only-write-batch=FILE | like --write-batch but w/o updating destination |
--read-batch=FILE | read a batched update from FILE |
--protocol=NUM | force an older protocol version to be used |
--iconv=CONVERT_SPEC | request charset conversion of filenames |
--ipv4, -4 | prefer IPv4 |
--ipv6, -6 | prefer IPv6 |
--version | print version number |
--help, -h | show this help ( -h works with no other options ) |
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers