int recurse = 0;
int am_daemon=0;
int am_client=0;
+int do_stats=0;
int block_size=BLOCK_SIZE;
{
rprintf(F,"rsync version %s Copyright Andrew Tridgell and Paul Mackerras\n\n",
VERSION);
- rprintf(F,"Usage:\t%s [options] src user@host:dest\nOR",RSYNC_NAME);
- rprintf(F,"\t%s [options] user@host:src dest\n\n",RSYNC_NAME);
- rprintf(F,"Options:\n");
- rprintf(F,"-v, --verbose increase verbosity\n");
- rprintf(F,"-c, --checksum always checksum\n");
- rprintf(F,"-a, --archive archive mode\n");
- rprintf(F,"-r, --recursive recurse into directories\n");
- rprintf(F,"-R, --relative use relative path names\n");
- rprintf(F,"-b, --backup make backups (default ~ extension)\n");
- rprintf(F,"-u, --update update only (don't overwrite newer files)\n");
- rprintf(F,"-l, --links preserve soft links\n");
- rprintf(F,"-L, --copy-links treat soft links like regular files\n");
- rprintf(F,"-H, --hard-links preserve hard links\n");
- rprintf(F,"-p, --perms preserve permissions\n");
- rprintf(F,"-o, --owner preserve owner (root only)\n");
- rprintf(F,"-g, --group preserve group\n");
- rprintf(F,"-D, --devices preserve devices (root only)\n");
- rprintf(F,"-t, --times preserve times\n");
- rprintf(F,"-S, --sparse handle sparse files efficiently\n");
- rprintf(F,"-n, --dry-run show what would have been transferred\n");
- rprintf(F,"-W, --whole-file copy whole files, no incremental checks\n");
- rprintf(F,"-x, --one-file-system don't cross filesystem boundaries\n");
- rprintf(F,"-B, --block-size SIZE checksum blocking size\n");
- rprintf(F,"-e, --rsh COMMAND specify rsh replacement\n");
- rprintf(F," --rsync-path PATH specify path to rsync on the remote machine\n");
- rprintf(F,"-C, --cvs-exclude auto ignore files in the same way CVS does\n");
- rprintf(F," --delete delete files that don't exist on the sending side\n");
- rprintf(F," --force force deletion of directories even if not empty\n");
- rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n");
- rprintf(F," --timeout TIME set IO timeout in seconds\n");
- rprintf(F,"-I, --ignore-times don't exclude files that match length and time\n");
- rprintf(F,"-T --temp-dir DIR create temporary files in directory DIR\n");
- rprintf(F,"-z, --compress compress file data\n");
- rprintf(F," --exclude FILE exclude file FILE\n");
- rprintf(F," --exclude-from FILE exclude files listed in FILE\n");
- rprintf(F," --include FILE don't exclude file FILE\n");
- rprintf(F," --include-from FILE don't exclude files listed in FILE\n");
- rprintf(F," --suffix SUFFIX override backup suffix\n");
- rprintf(F," --version print version number\n");
- rprintf(F," --daemon run as a rsync daemon\n");
- rprintf(F," --config FILE specify alternate rsyncd.conf file\n");
- rprintf(F," --port PORT specify alternate rsyncd port number\n");
+
+ rprintf(F,"rsync is a file transfer program capable of efficient remote update\nvia a fast differencing algorithm.\n\n");
+
+ rprintf(F,"Usage: rsync [OPTION]... SRC [USER@]HOST:DEST\n");
+ rprintf(F," or rsync [OPTION]... [USER@]HOST:SRC DEST\n");
+ rprintf(F," or rsync [OPTION]... SRC DEST\n");
+ rprintf(F," or rsync [OPTION]... [USER@]HOST::SRC DEST\n");
+ rprintf(F," or rsync [OPTION]... SRC [USER@]HOST::DEST\n");
+ rprintf(F,"\nOptions\n");
+ rprintf(F," -v, --verbose increase verbosity\n");
+ rprintf(F," -c, --checksum always checksum\n");
+ rprintf(F," -a, --archive archive mode\n");
+ rprintf(F," -r, --recursive recurse into directories\n");
+ rprintf(F," -R, --relative use relative path names\n");
+ rprintf(F," -b, --backup make backups (default ~ extension)\n");
+ rprintf(F," -u, --update update only (don't overwrite newer files)\n");
+ rprintf(F," -l, --links preserve soft links\n");
+ rprintf(F," -L, --copy-links treat soft links like regular files\n");
+ rprintf(F," -H, --hard-links preserve hard links\n");
+ rprintf(F," -p, --perms preserve permissions\n");
+ rprintf(F," -o, --owner preserve owner (root only)\n");
+ rprintf(F," -g, --group preserve group\n");
+ rprintf(F," -D, --devices preserve devices (root only)\n");
+ rprintf(F," -t, --times preserve times\n");
+ rprintf(F," -S, --sparse handle sparse files efficiently\n");
+ rprintf(F," -n, --dry-run show what would have been transferred\n");
+ rprintf(F," -W, --whole-file copy whole files, no incremental checks\n");
+ rprintf(F," -x, --one-file-system don't cross filesystem boundaries\n");
+ rprintf(F," -B, --block-size=SIZE checksum blocking size\n");
+ rprintf(F," -e, --rsh=COMMAND specify rsh replacement\n");
+ rprintf(F," --rsync-path=PATH specify path to rsync on the remote machine\n");
+ rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
+ rprintf(F," --delete delete files that don't exist on the sending side\n");
+ rprintf(F," --force force deletion of directories even if not empty\n");
+ rprintf(F," --numeric-ids don't map uid/gid values by user/group name\n");
+ rprintf(F," --timeout=TIME set IO timeout in seconds\n");
+ rprintf(F," -I, --ignore-times don't exclude files that match length and time\n");
+ rprintf(F," -T --temp-dir=DIR create temporary files in directory DIR\n");
+ rprintf(F," -z, --compress compress file data\n");
+ rprintf(F," --exclude=PATTERN exclude file FILE\n");
+ rprintf(F," --exclude-from=PATTERN exclude files listed in FILE\n");
+ rprintf(F," --include=PATTERN don't exclude file FILE\n");
+ rprintf(F," --include-from=PATTERN don't exclude files listed in FILE\n");
+ rprintf(F," --suffix=SUFFIX override backup suffix\n");
+ rprintf(F," --version print version number\n");
+ rprintf(F," --daemon run as a rsync daemon\n");
+ rprintf(F," --config=FILE specify alternate rsyncd.conf file\n");
+ rprintf(F," --port=PORT specify alternate rsyncd port number\n");
+ rprintf(F," --stats give some file transfer stats\n");
+ rprintf(F," -h, --help show this help screen\n");
rprintf(F,"\n");
rprintf(F,"the backup suffix defaults to %s\n",BACKUP_SUFFIX);
rprintf(F,"the block size defaults to %d\n",BLOCK_SIZE);
+
+ rprintf(F,"\nPlease see the rsync(1) and rsyncd.conf(5) man pages for full documentation\n");
+ rprintf(F,"See http://samba.anu.edu.au/rsync/ for updates and bug reports\n");
}
enum {OPT_VERSION,OPT_SUFFIX,OPT_SENDER,OPT_SERVER,OPT_EXCLUDE,
OPT_EXCLUDE_FROM,OPT_DELETE,OPT_NUMERIC_IDS,OPT_RSYNC_PATH,
OPT_FORCE,OPT_TIMEOUT,OPT_DAEMON,OPT_CONFIG,OPT_PORT,
- OPT_INCLUDE, OPT_INCLUDE_FROM};
+ OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_STATS};
static char *short_options = "oblLWHpguDCtcahvrRIxnSe:B:T:z";
{"temp-dir", 1, 0, 'T'},
{"compress", 0, 0, 'z'},
{"daemon", 0, 0, OPT_DAEMON},
+ {"stats", 0, 0, OPT_STATS},
{"config", 1, 0, OPT_CONFIG},
{"port", 1, 0, OPT_PORT},
{0,0,0,0}};
switch (opt)
{
case OPT_VERSION:
- printf("rsync version %s protocol version %d\n",
+ printf("rsync version %s protocol version %d\n\n",
VERSION,PROTOCOL_VERSION);
+ printf("Written by Andrew Tridgell and Paul Mackerras\n");
exit_cleanup(0);
case OPT_SUFFIX:
am_daemon = 1;
break;
+ case OPT_STATS:
+ do_stats = 1;
+ break;
+
case OPT_CONFIG:
config_file = optarg;
break;