X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/41059f75b5e1c18235dd8c2f54aad5cef24bb83d..cad2bba7d809c9f385fd8b85959c09c5e687edb5:/rsync.yo diff --git a/rsync.yo b/rsync.yo index f49fa2aa..e3f9c5c3 100644 --- a/rsync.yo +++ b/rsync.yo @@ -81,6 +81,9 @@ command line option, or by setting the RSYNC_RSH environment variable. One common substitute is to use ssh, which offers a high degree of security. +Note that rsync must be installed on both the source and destination +machines. + manpagesection(USAGE) You use rsync in the same way you use rcp. You must specify a source @@ -139,6 +142,11 @@ itemize( list of accessible paths on the server will be shown. ) +Some paths on the remote server may require authentication. If so then +you will receive a password prompt when you connect. You can avoid the +password prompt by setting the environment variable RSYNC_PASSWORD to +the password you want to use. This may be useful when scripting rsync. + manpagesection(RUNNING AN RSYNC SERVER) An rsync server is configured using a config file which by default is @@ -329,23 +337,30 @@ environment variable. dit(bf(--rsync-path PATH)) Use this to specify the path to the copy of rsync on the remote machine. Useful when its not in your path. -dit(bf(--exclude FILE)) This option allows you to selectively exclude +dit(bf(--exclude pattern)) This option allows you to selectively exclude certain files from the list of files to be transferred. This is most useful in combination with a recursive transfer. -The option FILE can either be a file name or a shell wildcard -expression. If it is a directory name then rsync will not recurse into -directories of that name. - You may use as many --exclude options on the command line as you like to build up the list of files to exclude. -If the filename is a single ! then the exclude list is reset. +See the section of exclude patterns for information on the syntax of +this option. dit(bf(--exclude-from FILE)) This option is similar to the --exclude option, but instead it adds all filenames listed in the file FILE to the exclude list. +dit(bf(--include pattern)) This option tells rsync to not exclude the +specified pattern of filenames. This is useful as it allows you to +build up quite complex exclude/include rules. + +See the section of exclude patterns for information on the syntax of +this option. + +dit(bf(--include-from FILE)) This specifies a list of include patterns +from a file. + dit(bf(-C, --cvs-exclude)) This is a useful shorthand for excluding a broad range of files that you often don't want to transfer between systems. It uses the same algorithm that CVS uses to determine if @@ -414,13 +429,13 @@ will exit. The default is 0, which means no timeout. dit(bf(--daemon)) This tells rsync that it is to run as a rsync daemon. If standard input is a socket then rsync will assume that it is being run via inetd, otherwise it will detach from the current -terminal and become a background daemon. The dameon will read the +terminal and become a background daemon. The daemon will read the config file (/etc/rsyncd.conf) on each connect made by a client and respond to requests accordingly. See the rsyncd.conf(5) man page for more details. dit(bf(--config FILE)) This specifies an alternate config file than -the default /etc/rsyncd.conf. This is only relevent when --daemon is +the default /etc/rsyncd.conf. This is only relevant when --daemon is specified. dit(bf(--port PORT)) This specifies an alternate TCP port number to use @@ -428,6 +443,63 @@ rather than the default port 873. enddit() +manpagesection(EXCLUDE PATTERNS) + +The exclude and include patterns specified to rsync allow for flexible +selection of what files to transfer and what files to skip. + +rsync build a ordered list of include/exclude options as specified on +the command line. When a filename is encountered rsync then checks the +name against each exclude/include pattern in turn. The first matching +pattern is acted on. If it is an exclude pattern than that file is +skipped. If it is an include pattern then that filename is not +skipped. If no matching include/exclude pattern is found then the +filename is not skipped. + +The patterns themselves can take several forms. The rules are: + +itemize( + it() if the pattern starts with a / then it is matched against the + start of the filename, otherwise it is matched against the end of + the filename. Thus /foo would match a file called foo + at the base of the tree whereas foo would match any file + called foo anywhere in the tree. + + it() if the pattern ends with a / then it will only match a + directory, not a file, link or device. + + it() if the pattern contains a wildcard character from the set + *?[ then regular expression matching is applied using the + normal shell filename matching rules. Otherwise a simple string + match is used. + + it() if the pattern contains a / (not counting a trailing /) then it + is matched against the full filename, including any leading + directory. If the pattern doesn't contain a / then it is matched + only against the final component of the filename. + + it() if the pattern starts with "+ " (a plus followed by a space) + then it is always considered a include pattern, even if specified as + part of an exclude option. The "+ " part is discarded before matching. + + it() if the pattern starts with "- " (a minus followed by a space) + then it is always considered a exclude pattern, even if specified as + part of an include option. The "- " part is discarded before matching. +) + +The +/- rules are most useful in exclude lists, allowing you to have a +single exclude list that contains both include and exclude options. + +Here are some examples: + +itemize( + it() --exclude "*.o" would exclude all filenames matching *.o + it() --exclude "/foo" would exclude a file in the base directory called foo + it() --exclude "foo/" would exclude any directory called foo + it() --include "*/" --include "*.c" --exclude "*" would include all + directories and C source files. +) + manpagefiles() /etc/rsyncd.conf @@ -445,7 +517,7 @@ times are transferred as unix time_t values file permissions, devices etc are transferred as native numerical values -see also the comments on the -delete option +see also the comments on the --delete option Please report bugs! The rsync bug tracking system is online at url(http://samba.anu.edu.au/rsync/)(http://samba.anu.edu.au/rsync/)