X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/598c409e63cb1bfa5a17128e00d963c46775ad90..4ccfd96cfee813f3855be5a902acc3d5cd0545a4:/rsync.yo diff --git a/rsync.yo b/rsync.yo index 9971b63e..fc33aca0 100644 --- a/rsync.yo +++ b/rsync.yo @@ -290,8 +290,8 @@ quote( get:nl() sync: get put) this allows me to sync with a CVS directory at the other end of the -connection. I then do cvs operations on the remote machine, which saves a -lot of time as the remote cvs protocol isn't very efficient. +connection. I then do CVS operations on the remote machine, which saves a +lot of time as the remote CVS protocol isn't very efficient. I mirror a directory between my "old" and "new" ftp sites with the command @@ -307,23 +307,24 @@ to the detailed description below for a complete description. 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 @@ -334,11 +335,11 @@ verb( -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 @@ -354,41 +355,41 @@ verb( --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 update transferred files into place at end + --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 @@ -399,10 +400,11 @@ Rsync can also be run as a daemon, in which case the following options are accep 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 @@ -680,7 +682,7 @@ file that is larger than the specified SIZE. The SIZE value can be suffixed with a letter to indicate a size multiplier (K, M, or G) and may be a fractional value (e.g. "--max-size=1.5m"). -dit(bf(--delete, --delete-before)) This tells rsync to delete extraneous files from the +dit(bf(--delete)) This tells rsync to delete extraneous files from the receiving side (ones that aren't on the sending side), but only for the directories that are being synchronized. You must have asked rsync to send the whole directory (e.g. "dir" or "dir/") without using a wildcard @@ -701,21 +703,30 @@ prevent temporary filesystem failures (such as NFS errors) on the 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 choosing 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 @@ -1186,6 +1197,11 @@ dit(bf(--port=PORT)) This specifies an alternate TCP port number for the 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 @@ -1222,9 +1238,8 @@ itemize( ) The 'x' is a single-letter that specifies the kind of rule to create. It -can have trailing modifiers, and is separated from the RULE by one of the -following characters: a single space, an equal-sign (=), or an underscore -(_). Here are the available rule prefixes: +can have trailing modifiers, and is separated from the RULE by either a +single space or an underscore (_). Here are the available rule prefixes: verb( - specifies an exclude pattern. @@ -1253,7 +1268,7 @@ comment lines that start with a "#". manpagesection(INCLUDE/EXCLUDE PATTERN RULES) -You can include and exclude files by specifing patterns using the "+" and +You can include and exclude files by specifying patterns using the "+" and "-" filter rules (as introduced in the FILTER RULES section above). These rules specify a pattern that is matched against the names of the files that are going to be transferred. These patterns can take several forms: @@ -1292,7 +1307,7 @@ itemize( directories. If the pattern doesn't contain a / or a "**", then it is matched only against the final component of the filename. (Remember that the algorithm is applied recursively so "full filename" - can actually be any portion of a path fomr the starting directory on + can actually be any portion of a path from the starting directory on down.) ) @@ -1374,7 +1389,7 @@ verb( :n- .non-inherited-per-dir-excludes ) -The following modifiers are accepted after the "." or ":": +The following modifiers are accepted after a "." or ":": itemize( it() A "-" specifies that the file should consist of only exclude @@ -1401,6 +1416,15 @@ itemize( specified to turn off the parsing of prefixes). ) +The following modifier is accepted after a "+" or "-": + +itemize( + it() A "/" specifies that the include/exclude should be treated as an + absolute path, relative to the root of the filesystem. For example, + "-/ /etc/passwd" would exclude the passwd file any time the transfer + was sending files from the "/etc" directory. +) + Per-directory rules are inherited in all subdirectories of the directory where the merge-file was found unless the 'n' modifier was used. Each subdirectory's rules are prefixed to the inherited per-directory rules @@ -1453,7 +1477,7 @@ Some examples of this pre-scanning for per-directory files: verb( rsync -avF /src/path/ /dest/dir rsync -av --filter=': ../../.rsync-filter' /src/path/ /dest/dir - rsync -av --fitler=': .rsync-filter' /src/path/ /dest/dir + rsync -av --filter=': .rsync-filter' /src/path/ /dest/dir ) The first two commands above will look for ".rsync-filter" in "/" and @@ -1469,7 +1493,7 @@ interpreted according to the same parsing rules that CVS uses. You can use this to affect where the --cvs-exclude (-C) option's inclusion of the per-directory .cvsignore file gets placed into your rules by putting a ":C" wherever you like in your filter rules. Without this, rsync would -add the per-dir rule for the .cvignore file at the end of all your other +add the per-dir rule for the .cvsignore file at the end of all your other rules (giving it a lower priority than your command-line rules). For example: