X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/01b835c237a5583980aa81a9ccb0ed3b34be01f4..4ccfd96cfee813f3855be5a902acc3d5cd0545a4:/rsync.yo diff --git a/rsync.yo b/rsync.yo index 4aea13a4..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,16 +335,17 @@ 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 --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 @@ -353,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 @@ -398,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 @@ -700,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 @@ -1185,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 @@ -1221,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. @@ -1252,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: @@ -1291,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.) ) @@ -1373,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 @@ -1400,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 @@ -1452,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 @@ -1468,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: