Rsync简介
Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具,适用于Unix/Linux/Windows等多种操作系统。
Rsync的特性
- 支持拷贝特殊文件如链接、设备文件
- 支持增量同步,传输效率较高
- 支持使用rcp,rsh,ssh作为隧道进行传输
- 支持使用守护进程的方式进行传输
- 支持匿名或认证的方式进行传输
- 支持保留文件属性不改变,支持排除指定文件
Rsync数据备份架构
Rsync常用参数
-v 显示过程 -z 压缩方式传输 -a 归档模式,等于-rtopgDL -r 目录递归 -t 保持时间信息 -o 保持所有者 -p 保持权限 -g 保持所属组
-P 显示过程以及断点续传 -D 保持设备文件信息 -L 保持软连接 -e 使用的信道协议 --exclude 指定排除文件 --bwlimit 限速 --delete 无差别同步
本地传输
rsync -avz /etc/hosts /tmp/ #区别:/tmp 和 /tmp/ ,前者传目录本身和文件,后者只传目录下的文件 [root@backup ~]# rsync -avz /tmp /mnt/ [root@backup ~]# ls /mnt Tmp [root@backup ~]# rsync -avz /tmp/ /mnt/ [root@backup ~]# ls /mnt hosts
通过远程shell通道传输
rsync -avz /etc/hosts -e "ssh -p 22" root@172.16.1.31:/mnt
通过守护进程进行传输
rpm -qa | grep rsync vim /etc/rsyncd.conf uid = rsync #客户端进行数据传输时所使用的用户 gid = rsync #客户端进行数据传输时所使用的用户组 user chroot = no #安全相关 max connections = 200 #最大连接数 timeout = 300 #超时时间,客户端连接后300s不传输自动断开 pid file = /var/run/rsyncd.pid #进程号文件 lock file = /var/run/rsync.lock #锁文件 log file = /var/log/rsyncd.log #日志文件 ignore errors #忽略错误 read only = false #可写 list = false #客户端不能ls等进行列表 hosts allow = 172.16.1.0/24 #允许连接的主机 #hosts deny = 0.0.0.0/32 #拒绝的主机 auth users = rsync_backup #客户端登录账号名 secrets file = /etc/rsync.password #密码文件,用于验证 [backup] #模块名称 path = /backup/ #提供访问的目录 useradd rsync -s /sbin/nologin –M mkdir /backup chown rsync.rsync /backup vim /etc/rsync.password rsync_backup:peterwang chmod 600 /etc/rsync.password rsync --daemon ps -ef | grep rsync | grep -v grep lsof -i :873 echo "/usr/bin/rsync --daemon" >> /etc/rc.local
客户端配置
mkdir /backup vim /etc/rsync.password peterwang chmod 600 /etc/rsync.password
传输测试
cd /backup/ touch stu{001..100} rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password rsync -avz rsync_backup@172.16.1.41::backup/ /backup/ --password-file=/etc/rsync.password