Remove a debugging statement I accidentally included in the last commit.
[rsync/rsync.git] / rsync.yo
CommitLineData
41059f75
AT
1mailto(rsync-bugs@samba.anu.edu.au)
2manpage(rsync)(1)(13 May 1998)()()
3manpagename(rsync)(faster, flexible replacement for rcp)
4manpagesynopsis()
5
6rsync [options] [user@]host:path path
7
8rsync [options] path [user@]host:path
9
10rsync [options] path path
11
37863201 12rsync [options] [user@]host::module[/path] path
41059f75 13
37863201 14rsync [options] path [user@]host::module[/path]
41059f75 15
33e817e3 16rsync [options] rsync://[user@]host[:port]/module/path path
039faa86 17
41059f75
AT
18manpagedescription()
19
20rsync is a program that behaves in much the same way that rcp does,
21but has many more options and uses the rsync remote-update protocol to
22greatly speedup file transfers when the destination file already
23exists.
24
25The rsync remote-update protocol allows rsync to transfer just the
26differences between two sets of files across the network link, using
27an efficient checksum-search algorithm described in the technical
28report that accompanies this package.
29
30Some of the additional features of rsync are:
31
32itemize(
33 it() support for copying links, devices, owners, groups and permissions
34 it() exclude and exclude-from options similar to GNU tar
35 it() a CVS exclude mode for ignoring the same files that CVS would ignore
36 it() can use any transparent remote shell, including rsh or ssh
37 it() does not require root privileges
38 it() pipelining of file transfers to minimize latency costs
39 it() support for anonymous or authenticated rsync servers (ideal for
40 mirroring)
41)
42
43manpagesection(GENERAL)
44
039faa86 45There are six different ways of using rsync. They are:
41059f75
AT
46
47itemize(
48 it() for copying local files. This is invoked when neither
49 source nor destination path contains a : separator
50
51 it() for copying from the local machine to a remote machine using
52 a remote shell program as the transport (such as rsh or
53 ssh). This is invoked when the destination path contains a
54 single : separator.
55
56 it() for copying from a remote machine to the local machine
57 using a remote shell program. This is invoked when the local path
58 contains a : separator.
59
60 it() for copying from a remote rsync server to the local
61 machine. This is invoked when the source path contains a ::
946347b8 62 separator or a rsync:// URL.
41059f75
AT
63
64 it() for copying from the local machine to a remote rsync
65 server. This is invoked when the destination path contains a ::
66 separator.
039faa86
AT
67
68 it() for listing files on a remote machine. This is done the
69 same way as rsync transfers except that you leave off the
70 local destination.
41059f75
AT
71)
72
73Note that in all cases at least one of the source and destination
74paths must be local.
75
76manpagesection(SETUP)
77
78See the file README for installation instructions.
79
80Once installed you can use rsync to any machine that you can use rsh
81to. rsync uses rsh for its communications, unless both the source and
82destination are local.
83
84You can also specify a alternative to rsh, by either using the -e
85command line option, or by setting the RSYNC_RSH environment variable.
86
87One common substitute is to use ssh, which offers a high degree of
88security.
89
8e987130
AT
90Note that rsync must be installed on both the source and destination
91machines.
92
41059f75
AT
93manpagesection(USAGE)
94
95You use rsync in the same way you use rcp. You must specify a source
96and a destination, one of which may be remote.
97
98Perhaps the best way to explain the syntax is some examples:
99
100quote(rsync *.c foo:src/)
101
102this would transfer all files matching the pattern *.c from the
103current directory to the directory src on the machine foo. If any of
104the files already exist on the remote system then the rsync
105remote-update protocol is used to update the file by sending only the
106differences. See the tech report for details.
107
108quote(rsync -avz foo:src/bar /data/tmp)
109
110recursively transfer all files from the directory src/bar on the
111machine foo into the /data/tmp/bar directory on the local machine. The
112files are transferred in "archive" mode, which ensures that symbolic
113links, devices, attributes, permissions, ownerships etc are preserved
114in the transfer. Additionally compression will be used to reduce the
115size of data portions of the transfer.
116
117quote(rsync -avz foo:src/bar/ /data/tmp)
118
119With a trailing slash on the source this behavior changes to transfer
120all files from the directory src/bar on the machine foo into the
121/data/tmp/. With a trailing / on a source name it means "copy the
122contents of this directory". Without a trailing slash it means "copy
123the directory". This difference becomes particularly important when
124using the --delete option.
125
126You can also use rsync in local-only mode, where both the source and
127destination don't have a ':' in the name. In this case it behaves like
128an improved copy command.
129
130
131manpagesection(CONNECTING TO AN RSYNC SERVER)
132
133It is also possible to use rsync without using rsh or ssh as the
134transport. In this case you will connect to a remote rsync server
135running on TCP port 873.
136
137Using rsync in this was is the same as using it with rsh or ssh except
138that:
139
140itemize(
141 it() you use a double colon :: instead of a single colon to
142 separate the hostname from the path.
143
144 it() the remote server may print a message of the day when you
145 connect
146
147 it() if you specify no path name on the remote server then the
148 list of accessible paths on the server will be shown.
f7632fc6
AT
149
150 it() if you specify no local destination then a listing of the
151 specified files on the remote server is provided
41059f75
AT
152)
153
4c3d16be
AT
154Some paths on the remote server may require authentication. If so then
155you will receive a password prompt when you connect. You can avoid the
156password prompt by setting the environment variable RSYNC_PASSWORD to
157the password you want to use. This may be useful when scripting rsync.
158
41059f75
AT
159manpagesection(RUNNING AN RSYNC SERVER)
160
161An rsync server is configured using a config file which by default is
162called /etc/rsyncd.conf. Please see the rsyncd.conf(5) man page for more
163information.
164
165manpagesection(EXAMPLES)
166
167Here are some examples of how I use rsync.
168
169To backup my wife's home directory, which consists of large MS word
170files and mail folders I use a cron job that runs
171
172quote(rsync -Cavz . arvidsjaur:backup)
173
174each night over a PPP link to a duplicate directory on my machine
175"arvidsjaur".
176
177To synchronize my samba source trees I use the following Makefile
178targets:
179
180quote( get:nl()
181 rsync -avuzb --exclude '*~' samba:samba/ .
182
183 put:nl()
184 rsync -Cavuzb . samba:samba/
185
186 sync: get put)
187
188this allows me to sync with a CVS directory at the other end of the
189link. I then do cvs operations on the remote machine, which saves a
190lot of time as the remote cvs protocol isn't very efficient.
191
192I mirror a directory between my "old" and "new" ftp sites with the
193command
194
195quote(rsync -az -e ssh --delete ~ftp/pub/samba/ nimbus:"~ftp/pub/tridge/samba")
196
197this is launched from cron every few hours.
198
c95da96a
AT
199manpagesection(OPTIONS SUMMARY)
200
201Here is a short summary of the options avalable in rsync. Please refer
202to the detailed description below for a complete description.
203
204verb(
d853783f
AT
205Usage: rsync [OPTION]... SRC [USER@]HOST:DEST
206 or rsync [OPTION]... [USER@]HOST:SRC DEST
207 or rsync [OPTION]... SRC DEST
208 or rsync [OPTION]... [USER@]HOST::SRC DEST
209 or rsync [OPTION]... SRC [USER@]HOST::DEST
33e817e3 210 or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC DEST
d853783f
AT
211
212Options
c95da96a
AT
213 -v, --verbose increase verbosity
214 -c, --checksum always checksum
215 -a, --archive archive mode
216 -r, --recursive recurse into directories
217 -R, --relative use relative path names
218 -b, --backup make backups (default ~ extension)
219 -u, --update update only (don't overwrite newer files)
220 -l, --links preserve soft links
221 -L, --copy-links treat soft links like regular files
d853783f 222 --safe-links ignore links outside the destination tree
c95da96a
AT
223 -H, --hard-links preserve hard links
224 -p, --perms preserve permissions
225 -o, --owner preserve owner (root only)
226 -g, --group preserve group
227 -D, --devices preserve devices (root only)
228 -t, --times preserve times
229 -S, --sparse handle sparse files efficiently
230 -n, --dry-run show what would have been transferred
231 -W, --whole-file copy whole files, no incremental checks
232 -x, --one-file-system don't cross filesystem boundaries
233 -B, --block-size=SIZE checksum blocking size
234 -e, --rsh=COMMAND specify rsh replacement
235 --rsync-path=PATH specify path to rsync on the remote machine
236 -C, --cvs-exclude auto ignore files in the same way CVS does
237 --delete delete files that don't exist on the sending side
238 --partial keep partially transferred files
239 --force force deletion of directories even if not empty
240 --numeric-ids don't map uid/gid values by user/group name
241 --timeout=TIME set IO timeout in seconds
242 -I, --ignore-times don't exclude files that match length and time
243 -T --temp-dir=DIR create temporary files in directory DIR
375a4556 244 --compare-dest=DIR also compare destination files relative to DIR
c95da96a 245 -z, --compress compress file data
2acf81eb
DD
246 --exclude=PATTERN exclude files matching PATTERN
247 --exclude-from=FILE exclude files listed in FILE
248 --include=PATTERN don't exclude files matching PATTERN
249 --include-from=FILE don't exclude files listed in FILE
c95da96a
AT
250 --suffix=SUFFIX override backup suffix
251 --version print version number
252 --daemon run as a rsync daemon
253 --config=FILE specify alternate rsyncd.conf file
254 --port=PORT specify alternate rsyncd port number
255 --stats give some file transfer stats
eb86d661 256 --progress show progress during transfer
b6062654 257 --log-format=FORMAT log file transfers using specified format
c95da96a
AT
258 -h, --help show this help screen
259)
260
41059f75
AT
261manpageoptions()
262
263rsync uses the GNU long options package. Many of the command line
264options have two variants, one short and one long. These are shown
265below separated by commas. Some options only have a long variant.
266
267startdit()
268dit(bf(-h, --help)) Print a short help page describing the options
269available in rsync
270
271dit(bf(--version)) print the rsync version number and exit
272
273dit(bf(-v, --verbose)) This option increases the amount of information you
274are given during the transfer. By default rsync works silently. A
275single -v will give you information about what files are being
276transferred and a brief summary at the end. Two -v flags will give you
277information on what files are being skipped and slightly more
278information at the end. More than two -v flags should only be used if
279you are debugging rsync
280
281dit(bf(-I, --ignore-times)) Normally rsync will skip any files that are
282already the same length and have the same time-stamp. This option turns
283off this behavior.
284
285dit(bf(-c, --checksum)) This forces the sender to checksum all files using
286a 128-bit MD4 checksum before transfer. The checksum is then
287explicitly checked on the receiver and any files of the same name
288which already exist and have the same checksum and size on the
289receiver are skipped. This option can be quite slow.
290
5243c216 291dit(bf(-a, --archive)) This is equivalent to -rlptDg. It is a quick way
41059f75
AT
292of saying I want recursion and want to preserve everything.
293
5243c216
AT
294Note: if the user launching rsync is root then the -o option (preserve
295uid) is also implied.
296
41059f75
AT
297dit(bf(-r, --recursive)) This tells rsync to copy directories recursively
298
299dit(bf(-R, --relative)) Use relative paths. This means that the full path
300names specified on the command line are sent to the server rather than
301just the last parts of the filenames. This is particularly useful when
302you want to sent several different directories at the same time. For
303example if you used the command
304
305verb(rsync foo/bar/foo.c remote:/tmp/)
306
307then this would create a file called foo.c in /tmp/ on the remote
308machine. If instead you used
309
310verb(rsync -R foo/bar/foo.c remote:/tmp/)
311
312then a file called /tmp/foo/bar/foo.c would be created on the remote
313machine. The full path name is preserved.
314
315dit(bf(-b, --backup)) With this option preexisting destination files are
316renamed with a ~ extension as each file is transferred. You can
317control the backup suffix using the --suffix option.
318
319dit(bf(-u, --update)) This forces rsync to skip any files for which the
320destination file already exists and has a date later than the source
321file.
322
323dit(bf(-l, --links)) This tells rsync to recreate symbolic links on the
324remote system to be the same as the local system. Without this
325option all symbolic links are skipped.
326
327dit(bf(-L, --copy-links)) This tells rsync to treat symbolic links just
328like ordinary files.
329
d310a212
AT
330dit(bf(--safe-links)) This tells rsync to ignore any symbolic links
331which point outside the destination tree. All absolute symlinks are
332also ignored. Using this option in conjunction with --relative may
333give unexpecetd results.
334
41059f75
AT
335dit(bf(-H, --hard-links)) This tells rsync to recreate hard links on
336the remote system to be the same as the local system. Without this
337option hard links are treated like regular files.
338
339Note that rsync can only detect hard links if both parts of the link
340are in the list of files being sent.
341
342This option can be quite slow, so only use it if you need it.
343
344dit(bf(-W, --whole-file)) With this option the incremental rsync algorithm
345is not used and the whole file is sent as-is instead. This may be
346useful when using rsync with a local machine.
347
c95da96a
AT
348dit(bf(--partial)) By default rsync will delete any partially
349transferred file if the transfer is interrupted. In some circumstances
350it is more desirable to keep partially transferred files. Using the
351--partial option tells rsync to keep the partial file which should
352make a subsequent transfer of the rest of the file much faster.
353
41059f75
AT
354dit(bf(-p, --perms)) This option causes rsync to update the remote
355permissions to be the same as the local permissions.
356
357dit(bf(-o, --owner)) This option causes rsync to update the remote owner
358of the file to be the same as the local owner. This is only available
8bb5aa8f
DD
359to the super-user. Note that if the source system is a daemon using chroot,
360the --numeric-ids option is implied because the source system cannot get
361access to the user names.
41059f75
AT
362
363dit(bf(-g, --group)) This option causes rsync to update the remote group
8bb5aa8f
DD
364of the file to be the same as the local group. Note that if the source
365system is a daemon using chroot, the --numeric-ids option is implied because
366the source system cannot get access to the group names.
41059f75
AT
367
368dit(bf(-D, --devices)) This option causes rsync to transfer character and
369block device information to the remote system to recreate these
370devices. This option is only available to the super-user.
371
372dit(bf(-t, --times)) This tells rsync to transfer modification times along
baf3e504
DD
373with the files and update them on the remote system. Note that if this
374option is not used, the optimization that excludes files that have not been
375modified cannot be effective; in other words, a missing -t or -a will
376cause the next transfer to behave as if it used -I, and all files will have
377their checksums compared and show up in log messages even if they haven't
378changed.
41059f75
AT
379
380dit(bf(-n, --dry-run)) This tells rsync to not do any file transfers,
381instead it will just report the actions it would have taken.
382
383dit(bf(-S, --sparse)) Try to handle sparse files efficiently so they take
384up less space on the destination.
385
d310a212
AT
386NOTE: Don't use this option when the destination is a Solaris "tmpfs"
387filesystem. It doesn't seem to handle seeks over null regions
388correctly and ends up corrupting the files.
389
41059f75
AT
390dit(bf(-x, --one-file-system)) This tells rsync not to cross filesystem
391boundaries when recursing. This is useful for transferring the
392contents of only one filesystem.
393
394dit(bf(--delete)) This tells rsync to delete any files on the receiving
395side that aren't on the sending side. This option can be dangerous if
396used incorrectly!
397
398It is a very good idea to run first using the dry run option (-n) to
399see what files would be deleted to make sure important files aren't
400listed.
401
402rsync 1.6.4 changed the behavior of --delete to make it less
403dangerous. rsync now only scans directories on the receiving side
404that are explicitly transferred from the sending side. Only files in
405these directories are deleted.
406
407Still, it is probably easy to get burnt with this option. The moral
408of the story is to use the -n option until you get used to the
409behavior of --delete.
410
3e578a19
AT
411If the sending side detects any IO errors then the deletion of any
412files at the destination will be automatically disabled. This is to
413prevent temporary filesystem failures (such as NFS errors) on the
414sending side causing a massive deletion of files on the
415destination.
41059f75
AT
416
417dit(bf(--force)) This options tells rsync to delete directories even if
418they are not empty. This applies to both the --delete option and to
419cases where rsync tries to copy a normal file but the destination
420contains a directory of the same name. Normally rsync will refuse to
421do a recursive directory deletion in such cases, by using --force
422the recursive deletion will be done.
423
424Use this option with caution!
425
426dit(bf(-B , --block_size BLOCKSIZE)) This controls the block size used in
427the rsync algorithm. See the technical report for details.
428
429dit(bf(-e, --rsh COMMAND)) This option allows you to choose an alternative
430remote shell program to use for communication between the local and
431remote copies of rsync. By default rsync will use rsh, but you may
432like to instead use ssh because of its high security.
433
434You can also choose the remote shell program using the RSYNC_RSH
435environment variable.
436
437dit(bf(--rsync-path PATH)) Use this to specify the path to the copy of
438rsync on the remote machine. Useful when its not in your path.
439
43bd68e5 440dit(bf(--exclude pattern)) This option allows you to selectively exclude
41059f75
AT
441certain files from the list of files to be transferred. This is most
442useful in combination with a recursive transfer.
443
41059f75
AT
444You may use as many --exclude options on the command line as you like
445to build up the list of files to exclude.
446
43bd68e5
AT
447See the section of exclude patterns for information on the syntax of
448this option.
41059f75
AT
449
450dit(bf(--exclude-from FILE)) This option is similar to the --exclude
451option, but instead it adds all filenames listed in the file FILE to
452the exclude list.
453
43bd68e5
AT
454dit(bf(--include pattern)) This option tells rsync to not exclude the
455specified pattern of filenames. This is useful as it allows you to
456build up quite complex exclude/include rules.
457
458See the section of exclude patterns for information on the syntax of
459this option.
460
461dit(bf(--include-from FILE)) This specifies a list of include patterns
462from a file.
463
41059f75
AT
464dit(bf(-C, --cvs-exclude)) This is a useful shorthand for excluding a
465broad range of files that you often don't want to transfer between
466systems. It uses the same algorithm that CVS uses to determine if
467a file should be ignored.
468
469The exclude list is initialized to:
470
471quote(RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state
472.nse_depinfo *~ #* .#* ,* *.old *.bak *.BAK *.orig *.rej .del-*
473*.a *.o *.obj *.so *.Z *.elc *.ln core)
474
475then files listed in a $HOME/.cvsignore are added to the list and any
476files listed in the CVSIGNORE environment variable (space delimited).
477
478Finally in each directory any files listed in the .cvsignore file in
479that directory are added to the list.
480
481dit(bf(--suffix SUFFIX)) This option allows you to override the default
482backup suffix used with the -b option. The default is a ~.
483
484dit(bf(--csum-length LENGTH)) By default the primary checksum used in
485rsync is a very strong 16 byte MD4 checksum. In most cases you will
486find that a truncated version of this checksum is quite efficient, and
487this will decrease the size of the checksum data sent over the link,
de2fd20e 488making things faster.
41059f75
AT
489
490You can choose the number of bytes in the truncated checksum using the
491--csum-length option. Any value less than or equal to 16 is valid.
492
493Note that if you use this option then you run the risk of ending up
494with an incorrect target file. The risk with a value of 16 is
495microscopic and can be safely ignored (the universe will probably end
496before it fails) but with smaller values the risk is higher.
497
de2fd20e
AT
498Current versions of rsync actually use an adaptive algorithm for the
499checksum length by default, using a 16 byte file checksum to determine
500if a 2nd pass is required with a longer block checksum. Only use this
501option if you have read the source code and know what you are doing.
502
375a4556
DD
503dit(bf(-T, --temp-dir DIR)) This option instructs rsync to use DIR as a
504scratch directory when creating temporary copies of the files
41059f75
AT
505transferred on the receiving side. The default behavior is to create
506the temporary files in the receiving directory.
507
375a4556
DD
508dit(bf(--compare-dest DIR)) This option instructs rsync to use DIR as an
509additional directory to compare destination files against when doing
510transfers. This is useful for doing transfers to a new destination while
511leaving existing files intact, and then doing a flash-cutover when all
512files have been successfully transfered (for example by moving directories
baf3e504
DD
513around and removing the old directory, although this requires also doing
514the transfer with -I to avoid skipping files that haven't changed). This
515option increases the usefulness of --partial because partially transferred
516files will remain in the new temporary destination until they have a chance
517to be completed. If DIR is a relative path, it is relative to the
518destination directory.
375a4556 519
41059f75
AT
520dit(bf(-z, --compress)) With this option, rsync compresses any data from
521the source file(s) which it sends to the destination machine. This
522option is useful on slow links. The compression method used is the
523same method that gzip uses.
524
525Note this this option typically achieves better compression ratios
526that can be achieved by using a compressing remote shell, or a
527compressing transport, as it takes advantage of the implicit
528information sent for matching data blocks.
529
530dit(bf(--numeric-ids)) With this option rsync will transfer numeric group
531and user ids rather than using user and group names and mapping them
532at both ends.
533
534By default rsync will use the user name and group name to determine
535what ownership to give files. The special uid 0 and the special group
5360 and never mapped via user/group names even if the --numeric-ids
537option is not specified.
538
8bb5aa8f
DD
539If the source system is a daemon using chroot, or if a user or group name
540does not exist on the destination system, then the numeric id from the
541source system is used instead.
41059f75 542
de2fd20e
AT
543dit(bf(--timeout=TIMEOUT)) This option allows you to set a maximum IO
544timeout in seconds. If no data is transferred for the specified time
545then rsync will exit. The default is 0, which means no timeout.
41059f75
AT
546
547dit(bf(--daemon)) This tells rsync that it is to run as a rsync
548daemon. If standard input is a socket then rsync will assume that it
549is being run via inetd, otherwise it will detach from the current
5315b793 550terminal and become a background daemon. The daemon will read the
41059f75
AT
551config file (/etc/rsyncd.conf) on each connect made by a client and
552respond to requests accordingly. See the rsyncd.conf(5) man page for more
553details.
554
555dit(bf(--config FILE)) This specifies an alternate config file than
5315b793 556the default /etc/rsyncd.conf. This is only relevant when --daemon is
41059f75
AT
557specified.
558
559dit(bf(--port PORT)) This specifies an alternate TCP port number to use
560rather than the default port 873.
561
b6062654
AT
562dit(bf(--log-format=FORMAT)) Normally rsync just logs filenames as
563they are transferred. This allows you to specify exactly what gets
564logged on a per file basis. The log format is specified using the same
565format conventions as the log format option in rsyncd.conf.
566
b72f24c7
AT
567dit(bf(--stats)) This tells rsync to print a verbose set of statistics
568on the file transfer, allowing you to tell how effective the rsync
56cdbccb
AT
569algorithm is for your data. This option only works in conjunction with
570the -v (verbose) option.
b72f24c7 571
eb86d661
AT
572dit(bf(--progress)) This option tells rsync to print information
573showing the progress of the transfer. This gives a bored user
574something to watch.
575
41059f75
AT
576enddit()
577
43bd68e5
AT
578manpagesection(EXCLUDE PATTERNS)
579
580The exclude and include patterns specified to rsync allow for flexible
581selection of what files to transfer and what files to skip.
582
583rsync build a ordered list of include/exclude options as specified on
584the command line. When a filename is encountered rsync then checks the
585name against each exclude/include pattern in turn. The first matching
586pattern is acted on. If it is an exclude pattern than that file is
587skipped. If it is an include pattern then that filename is not
588skipped. If no matching include/exclude pattern is found then the
589filename is not skipped.
590
591The patterns themselves can take several forms. The rules are:
592
593itemize(
594 it() if the pattern starts with a / then it is matched against the
595 start of the filename, otherwise it is matched against the end of
596 the filename. Thus /foo would match a file called foo
597 at the base of the tree whereas foo would match any file
598 called foo anywhere in the tree.
599
600 it() if the pattern ends with a / then it will only match a
601 directory, not a file, link or device.
602
603 it() if the pattern contains a wildcard character from the set
604 *?[ then regular expression matching is applied using the
605 normal shell filename matching rules. Otherwise a simple string
606 match is used.
607
608 it() if the pattern contains a / (not counting a trailing /) then it
609 is matched against the full filename, including any leading
610 directory. If the pattern doesn't contain a / then it is matched
611 only against the final component of the filename.
612
613 it() if the pattern starts with "+ " (a plus followed by a space)
614 then it is always considered a include pattern, even if specified as
615 part of an exclude option. The "+ " part is discarded before matching.
616
617 it() if the pattern starts with "- " (a minus followed by a space)
618 then it is always considered a exclude pattern, even if specified as
619 part of an include option. The "- " part is discarded before matching.
de2fd20e
AT
620
621 it() if the pattern is a single exclamation mark ! then the current
622 exclude list is reset, removing all previous exclude patterns.
43bd68e5
AT
623)
624
625The +/- rules are most useful in exclude lists, allowing you to have a
626single exclude list that contains both include and exclude options.
627
628Here are some examples:
629
630itemize(
631 it() --exclude "*.o" would exclude all filenames matching *.o
632 it() --exclude "/foo" would exclude a file in the base directory called foo
633 it() --exclude "foo/" would exclude any directory called foo
634 it() --include "*/" --include "*.c" --exclude "*" would include all
635 directories and C source files.
636)
637
d310a212
AT
638manpagesection(DIAGNOSTICS)
639
640rsync occasinally produces error messages that may seem a little
641cryptic. The one that seems to cause the most confusion is "protocol
642version mismatch - is your shell clean?".
643
644This message is usually caused by your startup scripts or remote shell
645facility producing unwanted garbage on the stream that rsync is using
646for its transport. The way ot diagnose this problem is to run your
647remote shell like this:
648
649verb(
650 rsh remotehost /bin/true > out.dat
651)
652
653then look at out.dat. If everything is working correctly then out.dat
654should be a zero length file. You you are getting the above error from
655rsync then you will probably find that out.dat contains some text or
656data. Look at the contents and try to work out what is producing
657it. The most common cause is incorrectly configued shell startup
658scripts (such as .cshrc or .profile) that contain output statements
659for non-interactive logins.
660
de2fd20e
AT
661manpagesection(ENVIRONMENT VARIABLES)
662
663startdit()
664
665dit(bf(CVSIGNORE)) The CVSIGNORE environment variable supplements any
666ignore patterns in .cvsignore files. See the --cvs-exclude option for
667more details.
668
669dit(bf(RSYNC_RSH)) The RSYNC_RSH environment variable allows you to
670override the default shell used as the transport for rsync. This can
671be used instead of the -e option.
672
673dit(bf(RSYNC_PASSWORD)) Setting RSYNC_PASSWORD to the required
674password allows you to run authenticated rsync connections to a rsync
675daemon without user intervention. Note that this does not supply a
676password to a shell transport such as ssh.
677
678dit(bf(USER) or bf(LOGNAME)) The USER or LOGNAME environment variables
679are used to determine the default username sent to a rsync server.
680
681dit(bf(HOME)) The HOME environment variable is used to find the users
682default .cvsignore file.
683
684enddit()
685
41059f75
AT
686manpagefiles()
687
688/etc/rsyncd.conf
689
690manpageseealso()
691
692rsyncd.conf(5)
693
694manpagediagnostics()
695
696manpagebugs()
697
698times are transferred as unix time_t values
699
700file permissions, devices etc are transferred as native numerical
701values
702
a87b3b2a 703see also the comments on the --delete option
41059f75
AT
704
705Please report bugs! The rsync bug tracking system is online at
706url(http://samba.anu.edu.au/rsync/)(http://samba.anu.edu.au/rsync/)
707
708manpagesection(VERSION)
709This man page is current for version 2.0 of rsync
710
711manpagesection(CREDITS)
712
713rsync is distributed under the GNU public license. See the file
714COPYING for details.
715
716The primary ftp site for rsync is
717url(ftp://samba.anu.edu.au/pub/rsync)(ftp://samba.anu.edu.au/pub/rsync).
718
719A WEB site is available at
720url(http://samba.anu.edu.au/rsync/)(http://samba.anu.edu.au/rsync/)
721
722We would be delighted to hear from you if you like this program.
723
724This program uses the zlib compression library written by Jean-loup
725Gailly and Mark Adler.
726
727manpagesection(THANKS)
728
729Thanks to Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell
730and David Bell for helpful suggestions and testing of rsync. I've
731probably missed some people, my apologies if I have.
732
733
734manpageauthor()
735
736rsync was written by Andrew Tridgell and Paul Mackerras. They may be
737contacted via email at tridge@samba.anu.edu.au and
738Paul.Mackerras@cs.anu.edu.au
739