X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/73f2fa818948cf2b8d256da3bcc96374a924fff7..27999abab48979c7306a1c335f8e264c6c200457:/rsync.yo diff --git a/rsync.yo b/rsync.yo index a649dd95..a98d1eab 100644 --- a/rsync.yo +++ b/rsync.yo @@ -219,6 +219,21 @@ environment variable RSYNC_PROXY to a hostname:port pair pointing to your web proxy. Note that your web proxy's configuration must support proxy connections to port 873. +You may also establish a daemon connection using a program as a proxy by +setting the environment variable RSYNC_CONNECT_PROG to the commands you +wish to run in place of making a direct socket connection. The string may +contain the escape "%H" to represent the hostname specified in the rsync +command (so use "%%" if you need a single "%" in your string). For +example: + +verb( export RSYNC_CONNECT_PROG='ssh proxyhost nc %H 873' + rsync -av targethost1::module/src/ /dest/ + rsync -av rsync:://targethost2/module/src/ /dest/ ) + +The command specifed above uses ssh to run nc (netcat) on a proxyhost, +which forwards all data to port 873 (the rsync daemon) on the targethost +(%H). + manpagesection(USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION) It is sometimes useful to use various features of an rsync daemon (such as @@ -318,6 +333,7 @@ to the detailed description below for a complete description. verb( -u, --update skip files that are newer on the receiver --inplace update destination files in-place --append append data onto shorter files + --append-verify --append w/old data in file cheksum -d, --dirs transfer directories without recursing -l, --links copy symlinks as symlinks -L, --copy-links transform symlink into referent file/dir @@ -330,7 +346,7 @@ to the detailed description below for a complete description. verb( -E, --executability preserve executability --chmod=CHMOD affect file and/or directory permissions -A, --acls preserve ACLs (implies -p) - -X, --xattrs preserve extended attrs (implies -p) + -X, --xattrs preserve extended attributes -o, --owner preserve owner (super-user only) -g, --group preserve group --devices preserve device files (super-user only) @@ -389,6 +405,7 @@ to the detailed description below for a complete description. verb( --include-from=FILE read include patterns from FILE --files-from=FILE read list of source-file names from FILE -0, --from0 all *from/filter files are delimited by 0s + -s, --protect-args no space-splitting; wildcard chars only --address=ADDRESS bind address for outgoing socket to daemon --port=PORT specify double-colon alternate port number --sockopts=OPTIONS specify custom TCP options @@ -555,19 +572,21 @@ Beginning with rsync 3.0.0, the recursive algorithm used is now an incremental scan that uses much less memory than before and begins the transfer after the scanning of the first few directories have been completed. This incremental scan only affects our recursion algorithm, and -does not change a non-recursive transfer. -It is also only possible when both ends of the -transfer are at least version 3.0.0. +does not change a non-recursive transfer. It is also only possible when +both ends of the transfer are at least version 3.0.0. Some options require rsync to know the full file list, so these options disable the incremental recursion mode. These include: bf(--delete-before), -bf(--delete-after), bf(--prune-empty-dirs), bf(--delay-updates), and bf(--hard-links). +bf(--delete-after), bf(--prune-empty-dirs), and bf(--delay-updates). Because of this, the default delete mode when you specify bf(--delete) is now bf(--delete-during) when both ends of the connection are at least 3.0.0 (use bf(--del) or bf(--delete-during) to request this improved deletion mode explicitly). See also the bf(--delete-delay) option that is a better choice than using bf(--delete-after). +Incremental recursion can be disabled using the bf(--no-inc-recursive) +option or its shorter bf(--no-i-r) alias. + dit(bf(-R, --relative)) Use relative paths. This means that the full path names specified on the command line are sent to the server rather than just the last parts of the filenames. This is particularly useful when @@ -701,13 +720,22 @@ receiving user. dit(bf(--append)) This causes rsync to update a file by appending data onto the end of the file, which presumes that the data that already exists on the receiving side is identical with the start of the file on the sending -side. If that is not true, the file will fail the checksum test, and the -resend will do a normal bf(--inplace) update to correct the mismatched data. -Only files on the receiving side that are shorter than the corresponding -file on the sending side (as well as new files) are transferred. -Implies bf(--inplace), but does not conflict with bf(--sparse) (though the -bf(--sparse) option will be auto-disabled if a resend of the already-existing -data is required). +side. Any files that are the same size or shorter on the receiving size +are skipped. Files that do not yet exist on the receiving side are also +sent, since they are considered to have 0 length. Implies bf(--inplace), +but does not conflict with bf(--sparse) (since it is always extending a +file's length). + +dit(bf(--append-verify)) This works just like the bf(--append) option, but +the existing data on the receiving side is included in the full-file +checksum verification step, which will cause a file to be resent if the +final verification step fails (rsync uses a normal, non-appending +bf(--inplace) transfer for the resend). + +Note: prior to rsync 3.0.0, the bf(--append) option worked like +bf(--append-verify), so if you are interacting with an older rsync (or the +transfer is using a protocol prior to 30), specifying either append option +will initiate an bf(--append-verify) transfer. dit(bf(-d, --dirs)) Tell the sending side to include any directories that are encountered. Unlike bf(--recursive), a directory's contents are not copied @@ -775,6 +803,12 @@ as though they were separate files. Note that rsync can only detect hard links if both parts of the link are in the list of files being sent. +If incremental recursion is active (see bf(--recursive)), rsync may transfer +a missing hard-linked file before it finds that another link for the file +exists elsewhere in the hierarchy. This does not affect the accuracy of +the transfer, just its efficiency. One way to avoid this is to disable +incremental recursion using the bf(--no-inc-recursive) option. + dit(bf(-p, --perms)) This option causes the receiving rsync to set the destination permissions to be the same as the source permissions. (See also the bf(--chmod) option for a way to modify what rsync considers to @@ -848,8 +882,7 @@ works if the remote rsync also supports it. bf(--acls) implies bf(--perms). dit(bf(-X, --xattrs)) This option causes rsync to update the remote extended attributes to be the same as the local ones. This will work -only if the remote machine's rsync supports this option also. This is -a non-standard option. +only if the remote machine's rsync also supports this option. dit(bf(--chmod)) This option tells rsync to apply one or more comma-separated "chmod" strings to the permission of the files in the @@ -964,7 +997,7 @@ correctly and ends up corrupting the files. dit(bf(-n, --dry-run)) This tells rsync to not do any file transfers, instead it will just report the actions it would have taken. -dit(bf(-W, --whole-file)) With this option the differential rsync algorithm +dit(bf(-W, --whole-file)) With this option the delta transfer algorithm is not used and the whole file is sent as-is instead. The transfer may be faster if this option is used when the bandwidth between the source and destination machines is higher than the bandwidth to disk (especially when the @@ -1320,6 +1353,21 @@ merged files specified in a bf(--filter) rule. It does not affect bf(--cvs-exclude) (since all names read from a .cvsignore file are split on whitespace). +If the bf(--iconv) and bf(--protect-args) options are specified and the +bf(--files-from) filenames are being sent from one host to another, the +filenames will be translated from the sending host's charset to the +receiving host's charset. + +dit(bf(-s, --protect-args)) This option sends all filenames and some options to +the remote rsync without allowing the remote shell to interpret them. This +means that spaces are not split in names, and any non-wildcard special +characters are not translated (such as ~, $, ;, &, etc.). Wildcards are +expanded on the remote host by rsync (instead of the shell doing it). + +If you use this option with bf(--iconv), the args will also be translated +from the local to the remote character set. The translation happens before +wild-cards are expanded. See also the bf(--files-from) option. + dit(bf(-T, --temp-dir=DIR)) This option instructs rsync to use DIR as a scratch directory when creating temporary copies of the files transferred on the receiving side. The default behavior is to create each temporary @@ -1706,7 +1754,7 @@ after it has served its purpose. Note that if bf(--whole-file) is specified (or implied), any partial-dir file that is found for a file that is being updated will simply be removed (since -rsync is sending files without using the differential rsync algorithm). +rsync is sending files without using the delta transfer algorithm). Rsync will create the em(DIR) if it is missing (just the last dir -- not the whole path). This makes it easy to use a relative path (such as @@ -1824,7 +1872,7 @@ sender's file, which is being reconstructed at a rate of 110.64 kilobytes per second, and the transfer will finish in 4 seconds if the current rate is maintained until the end. -These statistics can be misleading if the differential transfer algorithm is +These statistics can be misleading if the delta transfer algorithm is in use. For example, if the sender's file consists of the basis file followed by additional data, the reported rate will probably drop dramatically when the receiver gets to the literal data, and the transfer @@ -1921,20 +1969,25 @@ Finally, you can specify a CONVERT_SPEC of "-" to turn off any conversion. The default setting of this option is site-specific, and can also be affected via the RSYNC_ICONV environment variable. +If you specify the bf(--protect-args) option (bf(-s)), rsync will translate +the filenames you specify on the command-line that are being sent to the +remote host. See also the bf(--files-from) option. + Note that rsync does not do any conversion of names in filter files -(including include/exclude files), in a files-from file, nor those -specified on the command line. It is up to you to ensure that you're -requesting the right names from a remote server, and you can specify -extra include/exclude rules if there are filename differences on the -two sides that need to be accounted for. (In the future there may be -a way to specify a UTF-8 filter rule that gets auto-converted to the -local side's character set.) +(including include/exclude files). It is up to you to ensure that you're +specifying matching rules that can match on both sides of the transfer. +For instance, you can specify extra include/exclude rules if there are +filename differences on the two sides that need to be accounted for. dit(bf(-4, --ipv4) or bf(-6, --ipv6)) Tells rsync to prefer IPv4/IPv6 when creating sockets. This only affects sockets that rsync has direct control over, such as the outgoing socket when directly contacting an rsync daemon. See also these options in the bf(--daemon) mode section. +If rsync was complied without support for IPv6, the bf(--ipv6) option +will have no effect. The bf(--version) output will tell you if this +is the case. + dit(bf(--checksum-seed=NUM)) Set the MD4 checksum seed to the integer NUM. This 4 byte checksum seed is included in each block and file MD4 checksum calculation. By default the checksum seed is generated @@ -2017,6 +2070,10 @@ versions of Linux to work around an IPv6 bug in the kernel (if you see an "address already in use" error when nothing else is using the port, try specifying bf(--ipv6) or bf(--ipv4) when starting the daemon). +If rsync was complied without support for IPv6, the bf(--ipv6) option +will have no effect. The bf(--version) output will tell you if this +is the case. + dit(bf(-h, --help)) When specified after bf(--daemon), print a short help page describing the options available for starting an rsync daemon. enddit() @@ -2720,7 +2777,7 @@ values see also the comments on the bf(--delete) option -Please report bugs! See the website at +Please report bugs! See the web site at url(http://rsync.samba.org/)(http://rsync.samba.org/) manpagesection(VERSION)