文章目录
-
- 1. 介绍
- 2. 使用
- 3. 选项
1. 介绍
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。
此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具。
Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配 置文件;Rsync可以通过rsh或ssh使用,也能以daemon模式去运行。
在以daemon方式运行时Rsync server会打开一个873 端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。
Rsync 具有以下特点:
- 可以镜像保存整个目录树和文件系统;
- 可以很容易做到保持原来文件的权限、时间、软硬链接等;
- 无须特殊权限即可安装;
- 优化的流程,文件传输效率高;
- 可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
- 支持匿名传输
2. 使用
Usage:
rsync [OPTION]... SRC [SRC]... DEST
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
rsync [OPTION]... [USER@]HOST:SRC [DEST]
rsync [OPTION]... [USER@]HOST::SRC [DEST]
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module name.
Eg:
rsync -av /backup/ -e ssh root@192.168.1.110:/bak
#-a: archive归档模式,表示以递归方式传输文件,并保持所有文件属性,链接等,等于-rlptgoD
#-v: 显示详细信息
3. 选项
Options-v, --verbose increase verbosity--info=FLAGS fine-grained informational verbosity--debug=FLAGS fine-grained debug verbosity--msgs2stderr special output handling for debugging-q, --quiet suppress non-error messages--no-motd suppress daemon-mode MOTD (see manpage caveat)-c, --checksum skip based on checksum, not mod-time & size-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)--no-OPTION turn off an implied OPTION (e.g. --no-D)-r, --recursive recurse into directories-R, --relative use relative path names--no-implied-dirs don't send implied dirs with --relative-b, --backup make backups (see --suffix & --backup-dir)--backup-dir=DIR make backups into hierarchy based in DIR--suffix=SUFFIX set backup suffix (default ~ w/o --backup-dir)-u, --update skip files that are newer on the receiver--inplace update destination files in-place (SEE MAN PAGE)--append append data onto shorter files--append-verify like --append, but with old data in file checksum-d, --dirs transfer directories without recursing-l, --links copy symlinks as symlinks-L, --copy-links transform symlink into referent file/dir--copy-unsafe-links only "unsafe" symlinks are transformed--safe-links ignore symlinks that point outside the source tree--munge-links munge symlinks to make them safer (but unusable)-k, --copy-dirlinks transform symlink to a dir into referent dir-K, --keep-dirlinks treat symlinked dir on receiver as dir-H, --hard-links preserve hard links-p, --perms preserve permissions-E, --executability preserve the file's executability--chmod=CHMOD affect file and/or directory permissions-A, --acls preserve ACLs (implies --perms)-X, --xattrs preserve extended attributes-o, --owner preserve owner (super-user only)-g, --group preserve group--devices preserve device files (super-user only)--specials preserve special files-D same as --devices --specials-t, --times preserve modification times-O, --omit-dir-times omit directories from --times-J, --omit-link-times omit symlinks from --times--super receiver attempts super-user activities--fake-super store/recover privileged attrs using xattrs-S, --sparse handle sparse files efficiently--preallocate allocate dest files before writing them-n, --dry-run perform a trial run with no changes made-W, --whole-file copy files whole (without delta-xfer algorithm)-x, --one-file-system don't cross filesystem boundaries-B, --block-size=SIZE force a fixed checksum block-size-e, --rsh=COMMAND specify the remote shell to use--rsync-path=PROGRAM specify the rsync to run on the remote machine--existing skip creating new files on receiver--ignore-existing skip updating files that already exist on receiver--remove-source-files sender removes synchronized files (non-dirs)--del an alias for --delete-during--delete delete extraneous files from destination dirs--delete-before receiver deletes before transfer, not during--delete-during receiver deletes during the transfer--delete-delay find deletions during, delete after--delete-after receiver deletes after transfer, not during--delete-excluded also delete excluded files from destination dirs--ignore-missing-args ignore missing source args without error--delete-missing-args delete missing source args from destination--ignore-errors delete even if there are I/O errors--force force deletion of directories even if not empty--max-delete=NUM don't delete more than NUM files--max-size=SIZE don't transfer any file larger than SIZE--min-size=SIZE don't transfer any file smaller than SIZE--partial keep partially transferred files--partial-dir=DIR put a partially transferred file into DIR--delay-updates put all updated files into place at transfer's end-m, --prune-empty-dirs prune empty directory chains from the file-list--numeric-ids don't map uid/gid values by user/group name--usermap=STRING custom username mapping--groupmap=STRING custom groupname mapping--chown=USER:GROUP simple username/groupname mapping--timeout=SECONDS set I/O timeout in seconds--contimeout=SECONDS set daemon connection timeout in seconds-I, --ignore-times don't skip files that match in size and mod-time-M, --remote-option=OPTION send OPTION to the remote side only--size-only skip files that match in size--modify-window=NUM compare mod-times with reduced accuracy-T, --temp-dir=DIR create temporary files in directory DIR-y, --fuzzy find similar file for basis if no dest file--compare-dest=DIR also compare destination files relative to DIR--copy-dest=DIR ... and include copies of unchanged files--link-dest=DIR hardlink to files in DIR when unchanged-z, --compress compress file data during the transfer--compress-level=NUM explicitly set compression level--skip-compress=LIST skip compressing files with a suffix in LIST-C, --cvs-exclude auto-ignore files the same way CVS does-f, --filter=RULE add a file-filtering RULE-F same as --filter='dir-merge /.rsync-filter'repeated: --filter='- .rsync-filter'--exclude=PATTERN exclude files matching PATTERN--exclude-from=FILE read exclude patterns from FILE--include=PATTERN don't exclude files matching PATTERN--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; only wildcard special-chars--address=ADDRESS bind address for outgoing socket to daemon--port=PORT specify double-colon alternate port number--sockopts=OPTIONS specify custom TCP options--blocking-io use blocking I/O for the remote shell--stats give some file-transfer stats-8, --8-bit-output leave high-bit chars unescaped in output-h, --human-readable output numbers in a human-readable format--progress show progress during transfer-P same as --partial --progress-i, --itemize-changes output a change-summary for all updates--out-format=FORMAT output updates using the specified FORMAT--log-file=FILE log what we're doing to the specified FILE--log-file-format=FMT log updates using the specified FMT--password-file=FILE read daemon-access password from FILE--list-only list the files instead of copying them--bwlimit=RATE limit socket I/O bandwidth--outbuf=N|L|B set output buffering to None, Line, or Block--write-batch=FILE write a batched update to FILE--only-write-batch=FILE like --write-batch but w/o updating destination--read-batch=FILE read a batched update from FILE--protocol=NUM force an older protocol version to be used--iconv=CONVERT_SPEC request charset conversion of filenames--checksum-seed=NUM set block/file checksum seed (advanced)--noatime do not alter atime when opening source files-4, --ipv4 prefer IPv4-6, --ipv6 prefer IPv6--version print version number
(-h) --help show this help (-h is --help only if used alone)Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers