一、什么是rsync?
rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。
rsync官网
http://rsync.samba.org/
二、rsync的工作方式
1、单个主机本地之间的数据传输
同步文件hosts到/data/tmp
> rsync /etc/hosts /data/tmp/
同步删除tmp目录中的文件
> rsync -r --delete /data/tmp2/ /data/tmp/
2、借助rcp,ssh等通道来传输数据
推文件,把本地hosts文件通过ssh同步到远程主机/data/tmp目录
> rsync -avzP -e 'ssh -p 22' /etc/hosts root@192.168.137.233:/data/tmp/
拉文件,把远程主机/data/tmp目录下文件拉到本地/data/tmp2目录下
> rsync -avzP -e 'ssh -p 22' root@192.168.137.233:/data/tmp/ /data/tmp2/
3、以守护进程的方式传输数据
三、rsync的常用参数
-v 详细模式输出,传输时的进度等信息
-z 压缩传输
-a 归档模式,等同于-rlptgoD
-r 递归模式
-t 保持文件时间
-o 保持文件属主
-p 保持文件权限
-g 保持文件属组信息
-P 显示同步过程及传输时的进度
-D 保持设备文件信息
-l 保留软链接
--exclude 排除指定文件
--exclude-from 排除文件的路径
--password-file 指定密码文件
四、rsync守护进程方式配置
> touch /etc/rsyncd.conf
#端口
port = 873
#用户
uid = nobody
#用户组
gid = nobody
#禁止使用chroot
use chroot = no
#最大连接数
max connections = 100
#PID文件路径
pid file = /var/run/rsyncd.pid
#锁文件路径
lock file = /var/run/rsyncd.lock
#日志文件路径
log file = /var/log/rsyncd.log
#忽略一些无关的IO错误
ignore errors
#认证的用户
auth users = rsync_backup
#密码文件路径
secrets file = /etc/rsyncd.secrets
#允许主机
hosts allow = 192.168.137.0/24
#禁止主机
hosts deny = * #模块定义服务器哪个目录要被同步
[www.test.com]
path = /data/www/www.test.com
ignore errors
read only = false [www.test2.com]
path = /data/www/www.test2.com
ignore errors
read only = false
配置密码文件
> echo 'rsync_backup:123456' > /etc/rsyncd.secrets
修改密码文件权限
> chmod 600 /etc/rsyncd.secrets
以守护进程的方式启动服务
> /data/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
然后客户端就可以通过如下命令同步文件
> echo '123456' > /etc/rsync.pwd
> chmod 600 /etc/rsync.pwd
把服务器www.test.com模块同步到本地/data/www.test.com下
> rsync -avzP --password-file=/etc/rsync.pwd rsync_backup@192.168.137.222::www.test.com /data/www.test.com