verb(
-v, --verbose increase verbosity
- -q, --quiet decrease verbosity
+ -q, --quiet suppress non-error messages
-c, --checksum always checksum
- -a, --archive archive mode, equivalent to -rlptgoD
+ -c, --checksum skip based on checksum, not mod-time & size
+ -a, --archive archive mode; same as -rlptgoD (no -H)
-r, --recursive recurse into directories
-R, --relative use relative path names
--no-relative turn off --relative
--no-implied-dirs don't send implied dirs with -R
-b, --backup make backups (see --suffix & --backup-dir)
- --backup-dir make backups into this directory
+ --backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
- -u, --update update only (don't overwrite newer files)
- --inplace update the destination files in-place
+ -u, --update skip files that are newer on the receiver
+ --inplace update destination files in-place
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
- -L, --copy-links copy the referent of all symlinks
- --copy-unsafe-links copy the referent of "unsafe" symlinks
- --safe-links ignore "unsafe" symlinks
+ -L, --copy-links transform symlink into referent file/dir
+ --copy-unsafe-links only "unsafe" symlinks are transformed
+ --safe-links ignore symlinks that point outside the tree
-H, --hard-links preserve hard links
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-p, --perms preserve permissions
-O, --omit-dir-times omit directories when preserving times
-S, --sparse handle sparse files efficiently
-n, --dry-run show what would have been transferred
- -W, --whole-file copy whole files, no incremental checks
- --no-whole-file turn off --whole-file
+ -W, --whole-file copy files whole
+ --no-whole-file always use incremental rsync algorithm
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
- -e, --rsh=COMMAND specify the remote shell
+ -e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PATH specify path to rsync on the remote machine
--existing only update files that already exist
--ignore-existing ignore files that already exist on receiver
--del an alias for --delete-during
--delete delete files that don't exist on sender
+ --delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files on receiver
--max-size=SIZE don't transfer any file larger 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 end
--numeric-ids don't map uid/gid values by user/group name
--timeout=TIME set I/O timeout in seconds
- -I, --ignore-times turn off mod time & file size quick check
- --size-only ignore mod time for quick check (use size)
- --modify-window=NUM compare mod times with reduced accuracy
+ -I, --ignore-times don't skip files that match size and time
+ --size-only skip files that match in size
+ --modify-window=NUM compare mod-times with reduced accuracy
-T --temp-dir=DIR create temporary files in directory DIR
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
- -P equivalent to --partial --progress
-z, --compress compress file data
- -C, --cvs-exclude auto ignore files in the same way CVS does
+ -C, --cvs-exclude auto-ignore files in the same way CVS does
-f, --filter=RULE add a file-filtering RULE
-F same as --filter=': /.rsync-filter'
repeated: --filter='- .rsync-filter'
--exclude=PATTERN exclude files matching PATTERN
- --exclude-from=FILE exclude patterns listed in FILE
+ --exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
- --include-from=FILE don't exclude patterns listed in FILE
- --files-from=FILE read FILE for list of source-file names
- -0 --from0 all file lists are delimited by nulls
+ --include-from=FILE read include patterns from FILE
+ --files-from=FILE read list of source-file names from FILE
+ -0 --from0 all *from file lists are delimited by nulls
--version print version number
--port=PORT specify double-colon alternate port number
--blocking-io use blocking I/O for the remote shell
- --no-blocking-io turn off --blocking-io
- --stats give some file transfer stats
+ --no-blocking-io turn off blocking I/O when it is default
+ --stats give some file-transfer stats
--progress show progress during transfer
- --log-format=FORMAT log file transfers using specified format
- --password-file=FILE get password from FILE
+ -P same as --partial --progress
+ --log-format=FORMAT log file-transfers using specified format
+ --password-file=FILE read 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 batch to FILE
- --read-batch=FILE read a batch from FILE
- --checksum-seed=NUM set block/file checksum seed
+ --bwlimit=KBPS limit I/O bandwidth; KBytes per second
+ --write-batch=FILE write a batched update to FILE
+ --read-batch=FILE read a batched update from FILE
+ --checksum-seed=NUM set block/file checksum seed (advanced)
-4 --ipv4 prefer IPv4
-6 --ipv6 prefer IPv6
-h, --help show this help screen
verb(
--daemon run as an rsync daemon
--address=ADDRESS bind to the specified address
- --bwlimit=KBPS limit I/O bandwidth, KBytes per second
+ --bwlimit=KBPS limit I/O bandwidth; KBytes per second
--config=FILE specify alternate rsyncd.conf file
--no-detach do not detach from the parent
--port=PORT listen on alternate port number
+ -v, --verbose increase verbosity
-4 --ipv4 prefer IPv4
-6 --ipv6 prefer IPv6
-h, --help show this help screen
bound.
The option implies --partial (since an interrupted transfer does not delete
-the file), but conflicts with --partial-dir. Prior to rsync 2.6.4
---inplace was also incompatible with --compare-dest, --copy-dest, and
---link-dest.
+the file), but conflicts with --partial-dir and --delay-updates.
+Prior to rsync 2.6.4 --inplace was also incompatible with --compare-dest,
+--copy-dest, and --link-dest.
WARNING: The file's data will be in an inconsistent state during the
transfer (and possibly afterward if the transfer gets interrupted), so you
sending side causing a massive deletion of files on the
destination. You can override this with the --ignore-errors option.
-If you don't specify --delete-during (--del) or --delete-after, the
-file deletions will be done before the first file is transferred.
-This is helpful if the filesystem is tight for space
+The --delete option may be combined with one of the --delete-WHEN options
+without conflict, as well as --delete-excluded. However, if none of the
+--delete-WHEN options are specified, rsync will currently choose the
+--delete-before algorithm. A future version may change this to choose the
+--delete-during algorithm. See also --delete-after.
+
+dit(bf(--delete-before)) Request that the file-deletions on the receiving
+side be done before the transfer starts. This is the default if --delete
+or --delete-excluded is specified without one of the --delete-WHEN options.
+See --delete (which is implied) for more details on file-deletion.
+
+Deleting before the transfer is helpful if the filesystem is tight for space
and removing extraneous files would help to make the transfer possible.
However, it does introduce a delay before the start of the transfer,
and this delay might cause the transfer to timeout (if --timeout was
specified).
-dit(bf(--del, --delete-during)) Request that the file-deletions on the
-receving side be done incrementally as the transfer happens. This is
-a faster method than chosing the before- or after-transfer processing,
+dit(bf(--delete-during, --del)) Request that the file-deletions on the
+receiving side be done incrementally as the transfer happens. This is
+a faster method than chosing the before- or after-transfer algorithm,
but it is only supported beginning with rsync version 2.6.4.
See --delete (which is implied) for more details on file-deletion.
-dit(bf(--delete-after)) Request that the file-deletions on the receving
+dit(bf(--delete-after)) Request that the file-deletions on the receiving
side be done after the transfer has completed. This is useful if you
are sending new per-directory merge files as a part of the transfer and
you want their exclusions to take effect for the delete phase of the
You can also set the partial-dir value the RSYNC_PARTIAL_DIR environment
variable. Setting this in the environment does not force --partial to be
-enabled, but rather it effects where partial files go when --partial (or
--P) is used. For instance, instead of specifying --partial-dir=.rsync-tmp
+enabled, but rather it effects where partial files go when --partial is
+specified. For instance, instead of using --partial-dir=.rsync-tmp
along with --progress, you could set RSYNC_PARTIAL_DIR=.rsync-tmp in your
environment and then just use the -P option to turn on the use of the
-.rsync-tmp dir for partial transfers. The only time the --partial option
-does not look for this environment value is when --inplace was also
-specified (since --inplace conflicts with --partial-dir).
+.rsync-tmp dir for partial transfers. The only time that the --partial
+option does not look for this environment value is (1) when --inplace was
+specified (since --inplace conflicts with --partial-dir), or (2) when
+--delay-updates was specified (see below).
+
+dit(bf(--delay-updates)) This option puts the temporary file from each
+updated file into the file's partial-dir (see above) until the end of the
+transfer, at which time all the files are renamed into place in rapid
+succession. This attempts to make the updating of the files a little more
+atomic. If you don't specify the --partial-dir option, this option will
+cause it to default to ".~tmp~" (RSYNC_PARTIAL_DIR is not consulted for
+this value). Conflicts with --inplace.
+
+This option uses more memory on the receiving side (one bit per file
+transferred) and also requires enough free disk space on the receiving
+side to hold an additional copy of all the updated files. Note also that
+you should not use an absolute path to --partial-dir unless there is no
+chance of any of the files in the transfer having the same name (since all
+the updated files will be put into a single directory if the path is
+absolute).
+
+See also the "atomic-rsync" perl script in the "support" subdir for an
+update algorithm that is even more atomic (it uses --link-dest and a
+parallel hierarchy of files).
dit(bf(--progress)) This option tells rsync to print information
showing the progress of the transfer. This gives a bored user
daemon to listen on rather than the default of 873. See also the "port"
global option in the rsyncd.conf manpage.
+dit(bf(-v, --verbose)) This option increases the amount of information the
+daemon logs during its startup phase. After the client connects, the
+daemon's verbosity level will be controlled by the options that the client
+used and the "max verbosity" setting in the module's config section.
+
dit(bf(-4, --ipv4) or bf(-6, --ipv6)) Tells rsync to prefer IPv4/IPv6
when creating the incoming sockets that the rsync daemon will use to
listen for connections. One of these options may be required in older