Update README so that Paulus doesn't get bug reports anymore :-)
[rsync.git] / README
1 WHAT IS RSYNC?
2 --------------
3
4 rsync is a replacement for rcp that has many more features.
5
6 rsync uses the "rsync algorithm" which provides a very fast method for
7 bringing remote files into sync. It does this by sending just the
8 differences in the files across the link, without requiring that both
9 sets of files are present at one of the ends of the link beforehand.
10 At first glance this may seem impossible because the calculation of
11 diffs between two files normally requires local access to both
12 files. 
13
14 A technical report describing the rsync algorithm is included with
15 this package. 
16
17
18 USAGE
19 -----
20
21 Basically you use rsync just like rcp, but rsync has many additional options.
22
23 Here is a brief description of rsync usage:
24
25 Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
26   or   rsync [OPTION]... [USER@]HOST:SRC DEST
27   or   rsync [OPTION]... SRC [SRC]... DEST
28   or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
29   or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
30   or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
31 SRC on single-colon remote HOST will be expanded by remote shell
32 SRC on server remote HOST may contain shell wildcards or multiple
33   sources separated by space as long as they have same top-level
34
35 Options
36  -v, --verbose               increase verbosity
37  -q, --quiet                 decrease verbosity
38  -c, --checksum              always checksum
39  -a, --archive               archive mode
40  -r, --recursive             recurse into directories
41  -R, --relative              use relative path names
42  -b, --backup                make backups (default ~ suffix)
43      --suffix=SUFFIX         override backup suffix
44  -u, --update                update only (don't overwrite newer files)
45  -l, --links                 preserve soft links
46  -L, --copy-links            treat soft links like regular files
47      --copy-unsafe-links     copy links outside the source tree
48      --safe-links            ignore links outside the destination tree
49  -H, --hard-links            preserve hard links
50  -p, --perms                 preserve permissions
51  -o, --owner                 preserve owner (root only)
52  -g, --group                 preserve group
53  -D, --devices               preserve devices (root only)
54  -t, --times                 preserve times
55  -S, --sparse                handle sparse files efficiently
56  -n, --dry-run               show what would have been transferred
57  -W, --whole-file            copy whole files, no incremental checks
58  -x, --one-file-system       don't cross filesystem boundaries
59  -B, --block-size=SIZE       checksum blocking size (default 700)
60  -e, --rsh=COMMAND           specify rsh replacement
61      --rsync-path=PATH       specify path to rsync on the remote machine
62  -C, --cvs-exclude           auto ignore files in the same way CVS does
63      --delete                delete files that don't exist on the sending side
64      --delete-excluded       also delete excluded files on the receiving side
65      --partial               keep partially transferred files
66      --force                 force deletion of directories even if not empty
67      --numeric-ids           don't map uid/gid values by user/group name
68      --timeout=TIME          set IO timeout in seconds
69  -I, --ignore-times          don't exclude files that match length and time
70      --size-only             only use file size when determining if a file should be transferred
71  -T  --temp-dir=DIR          create temporary files in directory DIR
72      --compare-dest=DIR      also compare destination files relative to DIR
73  -z, --compress              compress file data
74      --exclude=PATTERN       exclude files matching PATTERN
75      --exclude-from=FILE     exclude patterns listed in FILE
76      --include=PATTERN       don't exclude files matching PATTERN
77      --include-from=FILE     don't exclude patterns listed in FILE
78      --version               print version number
79      --daemon                run as a rsync daemon
80      --config=FILE           specify alternate rsyncd.conf file
81      --port=PORT             specify alternate rsyncd port number
82      --stats                 give some file transfer stats
83      --progress              show progress during transfer
84      --log-format=FORMAT     log file transfers using specified format
85      --password-file=FILE    get password from FILE
86  -h, --help                  show this help screen
87
88
89
90 SETUP
91 -----
92
93 Rsync normally uses rsh or ssh for communication.  It does not need to
94 be setuid and requires no special privileges for installation.  You
95 must, however, have a working rsh or ssh system. Using ssh is
96 recommended for its security features.
97
98 Alternatively, rsync can run in `daemon' mode, listening on a socket.
99 This is generally used for public file distribution, although
100 authentication and access control are available.
101
102 To install rsync, first run the "configure" script. This will create a
103 Makefile and config.h appropriate for your system. Then type
104 "make". 
105
106 Note that on some systems you will have to force configure not to use
107 gcc because gcc may not support some features (such as 64 bit file
108 offsets) that your system may support. Set the environment variable CC
109 to the name of your native compiler before running configure in this
110 case. 
111
112 Once built put a copy of rsync in your search path on the local and
113 remote systems (or use "make install"). That's it!
114
115 RSYNC SERVERS
116 -------------
117
118 rsync can also talk to "rsync servers" which can provide anonymous or
119 authenticated rsync. See the rsyncd.conf(5) man page for details on how
120 to setup a rsync server. See the rsync(1) man page for info on how to
121 connect to a rsync server.
122
123
124 MAILING LIST
125 ------------
126
127 There is a mailing list for the discussion of rsync and its
128 applications. It is open to anyone to join. I will announce new
129 versions on this list. 
130
131 To join the mailing list see the web page at http://lists.samba.org/
132
133 To send mail to everyone on the list send it to rsync@samba.org
134
135
136 BUG REPORTS
137 -----------
138
139 If you have web access then please look at
140 http://rsync.samba.org/rsync/ 
141
142 This will give you access to the bug tracking system used by the
143 developers of rsync and will allow you to look at other bug reports or
144 submit a new bug report.
145
146 If you don't have web access then mail bug reports to rsync@samba.org.
147
148
149 CVS TREE
150 --------
151
152 If you want to get the very latest version of rsync direct from the
153 source code repository then you can use anonymous cvs. You will need a
154 recent version of cvs then use the following commands:
155
156         cvs -d :pserver:cvs@pserver.samba.org:/cvsroot login
157         Password: cvs
158
159         cvs -d :pserver:cvs@pserver.samba.org:/cvsroot co rsync
160
161 Look at the cvs documentation, or http://samba.org/cvs.html, for more
162 details.
163
164
165 COPYRIGHT
166 ---------
167
168 rsync was originally written by Andrew Tridgell and has been improved
169 by many developers around the world.  rsync may be used, modified and
170 redistributed only under the terms of the GNU General Public License,
171 found in the file COPYING in this distribution, or at 
172
173   http://www.fsf.org/licenses/gpl.html
174
175
176 AVAILABILITY
177 ------------
178
179 The main web site for rsync is http://rsync.samba.org/
180 The main ftp site is ftp://rsync.samba.org/pub/rsync/
181 This is also available as rsync://rsync.samba.org/rsyncftp/