欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
目录概述:
rsync工具简介
1. rsync用法
2. rsync 参数说明
3. rsync的配置
3.1 2台主机建立ssh信任
3.2 服务器端和客户端使用
4. rsync的简单使用
rsync工具简介
rysnc是一个数据镜像及备份工具,具有可使本地和远程两台主机的文件,目录之间,快速同步镜像,远程数据备份等功能。在同步过程中,rsync是根据自己独特的算法,只同步有变化的文件,甚至在一个文件里只同步有变化的部分,所以可以实现快速的同步数据的功能。
1. rsync用法
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. rsync 参数说明
-h , –help 显示rsync求助资讯
–version 显示rsync版本
-v , –verbose 复杂的输出信息
-q , –quiet 安静模式,几乎没有讯息产生, 常用在以cron执行rsync
-I, –ignore-times 通常rsync为了加快速度会忽略同样档案大小且同样,同样存取时间点的档案
可以通过此参数开关此快速检查。
–size-only rsync 只检查档案大小是否改变,不管时间存取点是否改变
通常用在mirror, 且对方时间不太正确时
-c, –checksum 在传送之前透过128bit的md4检查码来检查所有要传送的档案(会托满速度);
-a, –archive archive mode 权限保存模式,相当于 -rlptgoD 参数。
很快速的保存几乎所有的权限设定,除了硬式连接(透过-H设定)。
-r, –recursive 复制所有下面的资料(透过)
-R, –relative 使用相对路径
如: rsync foo/bar/foo.c remote:/tmp/ 在远端产生/tmp/foo.c档案
rsync -R foo/bar/foo.c remote:/tmp/ 在远端产生/tmp/foo/bar/foo.c 档案
-R, –relative 不使用相对路径
-b, –backup 目的地端先前已经存在的档案在传输或删除前会被备份
–backup-dir=DIR 设定备份的资料夹
–suffix=SUFFIX 指定备份的档案名称字尾形式(预设为~)
-K, –keep-dirlinks 接收方将连接到资料夹的档案视为资料夹处理
-l, –links 复制所有的连接
-H, –hard-links 保留硬式连结
-p, –perms 保留档案权限
-o, –owner 保留档案所有者(root only)
-g, –group 保留档案群组
-D, –devices 保留device资讯(root only)
-t, –times 保留时间点
-n, –dry-run 不实际执行传送, 只显示将会有的传输动作
-S, –sparse 尝试去处理稀疏的档案, 让这些档案在目的端占去较少的磁碟空间
-W, –whole-file 复制所有的档案, 不额外作检查
–no-whole-file 关闭 –whole-file 参数
-x, –one-file-system 不要跨越档案系统分界(只在一个档案系统处理)
-B, –block-size=SIZE 强制透过rsync程式去比对修复block-sizeforce
-e –rsh=COMMAND 定义所试用的remote shell
–rsync-path=PATH 定义rsync在远端机器存放资料的路径
–existing 只对比更新目的端已经存在的档案
–ignore-existing 忽略目的断已经存在的档案(也就是不更新)
–delete 删除传送断已经不存在,而目的端存在的档案
–delete-excluded 除了把传送端已经不存在, 而目的端存在的档案删除之外, 也删除 –exclude 参数所包含的档案
–delete-after rsync预设会在档案传送前进行相关删除动作确保接收端有足够的档案空间,
单可以透过 –delete-after 让删除动作在档案传送后在进行删除
–ignore-errors 忽略任何错误即使是I/O error 也进行 –delete 删除动作
–max-delete=NUM 定义rsync不要删除超过NUM个档案
–partial rsync若遇到传输过程中断时, 会把那些已经传输的档案删除。
在某种状况下保留那些部分传送的档案是令人高兴的;
你可以透过 –partial 参数达到这个目的。
–partial-dir=DIR 在 –partial 参数启动时, 你还是可以定义rsync把那些部分传送的档案
写入定义的资料夹, 而非直接写入目的端,需要注意的是,
此资料夹不应该被其他试用者可以写入。(如:/tmp)
–force 当目的端资料夹被传送端非资料夹名称覆盖时, 强制rsync删除资料夹, 即使该资料夹不是空的。
–numeric-ids 不将传送端档案的uid及gid值, 与目的端的使用者/群组进行配对,
若传送端并没有uid及gid的对应名称(如:原帐号群组被删除的遗留档案),
或目的端没有相对应的帐号/群组, 保留数字型式的uid/gid
–timeout=TIMEOUT 设定I/O 超时的时间(秒)。 超过这个秒数而没有资料传送, rsync将会结束。 预设为0,也就是没有定义超时时间
-T, –temp-dir=DIR 定义rsync在接收端产生暂时性的复制档案时使用资料夹暂存,预设时直接在接收端资料夹直接产生暂存档案
–compare-dest=DIR 定义rsync在目的端建立资料夹来比对传送过来的档案。
–link-dest=DIR 与 –compare-dest 相同,但同时会针对无法改变的档案建立硬式连结。
-z, –compress 压缩模式, 当资料在传送到目的端进行档案压缩。
-P -P参数和 –partial –progress 相同。只是为了把参数简单化。
-C, –cvs-exclude 排除那些通常不希望传送的档案, 定义的方式与CVS传送相同:
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state
.nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej
.del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/
符合以上条件的都会被忽略不传送。
–exclude=PATTER 符合PATTERN(规则表示式)样式的档案不仅行传送
–exclude-from=FILE 和 –exclude 参数相同, 不过是把不进行传送的档案事先写入某一档案。
执行时, 透过此参数让rsync读取。
(; #开头的行列或者空白会被rsync忽略)
–include=PATTERN 定义rsync不要排除符合pattern样式的档案
–include-from=FILE 和–include参数相同,只不过把要包含的档案写到某一档案。
–files-from=FILE 把要传送的档案名称都精确的写入某一档案, 让rsync读取。
如: rsync -a –files-from=/tmp/foo /usr remote:/backup
-0 –from0 定义档案所要读取的档案时null字元结尾。
–version 现四版本信息。
–daemon 定义rsync以daemon型态执行
–no-detach 当以daemon形态执行时,不要进行分裂且变成背景程序。
–address=ADDRESS 定义所要连接(bind)的ip位置或者是host名称(daemon限定)
–config=FILE 定义所要读取的设定档rsyncd.conf位置(daemon限定)
预设值为 /usr/local/etc/rsyncd.conf
–port=PORT 定义rsyncd(daemon)要旨行的port(预设为tcp 873)
–blocking-io 使用blocking I/O连结远端的shell, 如rsh, remsh
–no-blocking-io 使用non-blocking连结远端的shell, 如ssh(预设值)
[1][2]
漫无目的的生活就像出海航行而没有指南针