rsync 简单同步
同步2个目录
[root@localhost ~]# rsync -av /111/ /tmp/222/
同步2个目录,如果目录中有软链接,则保存真实文件
[root@localhost ~]# rsync -avL /111/ /tmp/222
同步2个目录,并保证源和目标完全相同
[root@localhost ~]# rsync -avL --delete /111 /tmp/222
同步2个目录,如果源文件更新,则覆盖目标文件,如果目标文件更新,则不覆盖目标文件
[root@localhost ~]# rsync -avuL /111 /tmp/222/
同步2个目录,P显示进度及速度,z压缩传输
[root@localhost ~]# rsync -avzP /111 /tmp/222
同步2个目录,并忽略*.txt文件
[root@localhost ~]# rsync -av --exclude="*.txt" /111 /tmp/222
对比2个文件是否存在差异
[root@localhost ~]# diff /etc/inittab /tmp/222/12.txt
把本地/111/目录同步到远程/tmp/222/目录
[root@localhost ~]# rsync -avzP /111/ 192.168.10.199:/tmp/222/
把远程目录/tmp/222/同步到本地/111/
[root@localhost ~]# rsync -avzP 192.168.10.199:/tmp/222/ /111/
通过10022端口同步2个目录
[root@localhost ~]# rsync -avzP -e "ssh -p 10022" 192.168.10.199:/tmp/222/ /111/
rsync 后台服务
搭建rsync 服务端
1、需要在服务端防火墙开启相对应端口通讯放行
2、/etc/rsyncd.conf 默认后台配置文件,内容如下:
port=873 #如果忽略该行配置,默认端口为8730
log file=/var/log/rsync.log #日志保存路径
pid file=/var/run/rsync.pid #pid文件路径
#address= #监听IP,如果忽略该行配置,表示监听所有IP
[rsync1] #模块名
path=/tmp/rsync #同步目录,如不存在,需手工创建
use chroot=yes|no|true|false #当同步参数包含L时,即目录内有
软链接时同步真实文件,有可能源文件不在/tmp/rsync目录内,当这
个选项为yes|true时,禁止同步/tmp/rsync目录以外的文件,为
no|false时为允许
max connections=4 #最大连接数,一般情况下不用管
read only=yes #客户端只允许读取/tmp/rsync目录,不允许写
list=yes #是否允许列出模块名
uid=root #用户身份
gid=root #组用户身份
auth users=rsync1
secrets file=/etc/rs.passwd #这个文件内容只有一行 用户名:密码
hosts allow=192.168.10.199 #指定允许访问服务端的IP,如忽略此配置,表示允许所有IP访问
启动rsync
[root@localhost ~]# rsync -daemon
检查进程
[root@localhost ~]# ps aux | grep rsync
查看rsync日志
[root@localhost ~]# cat /var/log/rsync.log
客户端同步服务端目录到本地(要手工输入密码)
[root@localhost ~]# rsync -avzP --delete --port 873 rsync1@192.168.10.199::rsync1/ /tmp/123
客户端携眷本地目录到服务端(要手工输入密码),提前是配置文件/etc/rsyncd.conf中的read only=no
[root@localhost ~]# rsync -avzP --delete --port 873 /tmp/123 rsync1@192.168.10.199::rsync1/
客户端同步服务端目录到本地,指定密码文件,省略手工输入密码步骤,该密码文件权限必须为400,内容为密码
[root@localhost ~]# rsync -avzP --delete --port 873 --password-file=/etc/rsync1_pass rsync1@192.168.10.199::rsync1/ /tmp/123/