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