rsync使用小结
2017/8/14
参数说明v:详细提示a:以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。z:压缩u:只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时P:是综合了–partial –progress两个参数,所以此时的rsync支持了断点续传1、主机a启动rsync服务:/usr/bin/rsync --daemon --address=192.168.1.250配置文件默认:/etc/rsyncd.conf没有这个配置可以自己写一个----uid = nobodygid = nobodyuse chroot = nomax connections = 10timeout = 600pid file = /var/run/rsyncd.pidlock file = /var/run/rsyncd.locklog file = /var/log/rsyncd.log[模块名a]path = 目录/a/b/cread only = yeslist = nohosts allow = 允许的ip,最好是内网hosts deny = *uid = rootgid = root----注意,使用list = no 否则可以直接通过rsync ip:: 列出模块名2、主机b同步主机arsync --avzP ipa::模块名a 目录/x/y/z注意::和:的区别, 目录最后有没有斜杠的区别。3、注意测试src 和 dest 路径对应的文件夹是否符合预期;例如上述例子是将/a/b/c 同步到本地的 /x/y/z 目录z下面放的是目录c,并非是c目录下的文件,即:/x/y/z/c/刚测试了下,如果路径a配置的是/a/b/c/ 则同步的是/x/y/z/(c目录下的文件)也就是要注意路径最后有没有斜杠/测试用例:~]$ mkdir d{1,2}/{a,b,c} -p~]$ lsd1 d2~]$ rsync d1 d2skipping directory d1~]$ rsync -avzP d1 d2sending incremental file listd1/d1/a/d1/b/d1/c/sent 96 bytes received 28 bytes 248.00 bytes/sectotal size is 0 speedup is 0.00~]$ tree d2d2├── a├── b├── c└── d1 ├── a ├── b └── c7 directories, 0 files~]$ rsync -avzP d1/ d2/sending incremental file list./sent 78 bytes received 18 bytes 192.00 bytes/sectotal size is 0 speedup is 0.00~]$ rsync -avzP --delete d1/ d2/sending incremental file listdeleting d1/c/deleting d1/b/deleting d1/a/deleting d1/sent 75 bytes received 15 bytes 180.00 bytes/sectotal size is 0 speedup is 0.00~]$ tree d2d2├── a├── b└── c3 directories, 0 files4、限速GB级别的网卡,调整限速为600Mbps = 60000KBps# rsync -avzP --delete --bwlimit=60000 192.168.1.250::upload /home/web/upload >/dev/nullhttp://drops.wooyun.org/papers/1615、rsync和inotifywait的排除选项#!/bin/bash ## rsync -avzP --exclude="*.log" --exclude="*.zip.*" --exclude="*.csv.*" --exclude="*.xls.*" /home/web/log/exportlog/ 192.168.5.72::s72log_export_pubsrc=/home/web/log/exportlog/dest=s72log_export_pubip=192.168.5.72/usr/local/bin/inotifywait -mr -e close_write --exclude '^.*(log|csv\..*|xls\..*|zip\..*)$' $src | while read filedo echo "[+] `date` start" echo "[-] $file" rsync -avzP --exclude="*.log" --exclude="*.zip.*" --exclude="*.csv.*" --exclude="*.xls.*" $src $ip::$dest echo "[-] `date` end"done6、注意rsync排除目录的区别# rsync -avP --delete 192.168.1.50:/media/ /mnt/ --exclude="boot"# rsync -avP --delete 192.168.1.50:/media/ /mnt/ --exclude="/boot"# rsync -avP --delete 192.168.1.50:/media/ /mnt/ --exclude="boot/"# rsync -avP --delete 192.168.1.50:/media/ /mnt/ --exclude="/boot/"7、如果使用 -z 参数,则可能导致传输速度变慢8、使用密码验证服务端:# cat /etc/rsyncd.conf-----uid = rootgid = rootuse chroot = yesmax connections = 200timeout=600#syslog facility = local5pid file = /var/log/rsync/rsyncd.pidlog file = /var/log/rsync/rsyncd.loglock file= /var/log/rsync/rsync.lock[data] path = /data refuse options = delete comment = backup read only= no uid = root gid = root #ignore errors auth users = backup secrets file = /etc/rsyncd.secrets -----# cat /etc/rsyncd.secrets backup:111111# chmod 600 /etc/rsyncd.secrets # /usr/bin/rsync --daemon --address=192.168.1.100客户端:# cat /etc/rsync.pass111111# chmod 600 /etc/rsync.pass# rsync -av --no-o --no-g --password-file=/etc/rsync.pass /tmp/1 backup@192.168.1.100::data/backup/ovirt/engine