1、语法
Usage: rsync [OPTION]… SRC [SRC]… DEST
 or rsync [OPTION]… SRC [SRC]… [USER@]HOST:DEST
 or rsync [OPTION]… SRC [SRC]… [USER@]HOST::DEST
 or rsync [OPTION]… SRC [SRC]… rsync://[USER@]HOST[:PORT]/DEST
 or rsync [OPTION]… [USER@]HOST:SRC [DEST]
 or rsync [OPTION]… [USER@]HOST::SRC [DEST]
 or 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.
2、常用参数
-v, --verbose               increase verbosity
-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-z, --compress              compress file data during the transfer
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
-z, --compress 对备份的文件在传输时进行压缩处理
--delete 删除那些DST中SRC没有的文件
--force 强制删除目录,即使不为空 
-e 'ssh -p 30022' (这里用来指定ssh端口,默认22)
--exclude=workspace(同步/var/lib/jenkins/目录下除workspace外的所有内容)
例子
同步远程服务器上的目录到本地
rsync -avz --delete --force --exclude=workspace -e 'ssh -p 30022' root@remoutehost_ip:/var/lib/jenkins/ /data/jenkins/
命令解析:该命令是将远程服务器上/var/lib/jenkins/目录下的所有(除了workspace)文件及目录(不包含jenkins目录,如果想连同目录本身被同步,/var/lib/jenkins后不能加/,即/var/lib/jenkins)同步到当前服务器的/data/jenkins/目录下
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)--copy-devices          copy device contents as regular file--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)-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.
rsync参数的具体解释如下: -v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -c, --checksum 打开校验开关,强制对文件传输进行校验 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理 -R, --relative 使用相对路径信息 -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 --backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -l, --links 保留软链结 -L, --copy-links 想对待常规文件一样处理软链结 --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结 --safe-links 忽略指向SRC路径目录树以外的链结 -H, --hard-links 保留硬链结 -p, --perms 保持文件权限 -o, --owner 保持文件属主信息 -g, --group 保持文件属组信息 -D, --devices 保持设备文件信息 -t, --times 保持文件时间信息 -S, --sparse 对稀疏文件进行特殊处理以节省DST的空间 -n, --dry-run现实哪些文件将被传输 -W, --whole-file 拷贝文件,不进行增量检测 -x, --one-file-system 不要跨越文件系统边界 -B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节 -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步 --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息 -C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件 --existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件 --delete 删除那些DST中SRC没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件 --delete-after 传输结束以后再删除 --ignore-errors 及时出现IO错误也进行删除 --max-delete=NUM 最多删除NUM个文件 --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --force 强制删除目录,即使不为空 --numeric-ids 不将数字的用户和组ID匹配为用户名和组名 --timeout=TIME IP超时时间,单位为秒 -I, --ignore-times 不跳过那些有同样的时间和长度的文件 --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间 --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0 -T --temp-dir=DIR 在DIR中创建临时文件 --compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份 -P 等同于 --partial --progress 显示备份过程 -z, --compress 对备份的文件在传输时进行压缩处理 --exclude=PATTERN 指定排除不需要传输的文件模式 --include=PATTERN 指定不排除而需要传输的文件模式 --exclude-from=FILE 排除FILE中指定模式的文件 --include-from=FILE 不排除FILE指定模式匹配的文件 --version 打印版本信息 --address 绑定到特定的地址 --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件 --port=PORT 指定其他的rsync服务端口 --blocking-io 对远程shell使用阻塞IO -stats 给出某些文件的传输状态 --progress 在传输时现实传输过程 --log-format=formAT 指定日志文件格式 --password-file=FILE 从FILE中得到密码 --bwlimit=KBPS 限制I/O带宽,KBytes per second -h, --help 显示帮助信息