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/