rsync

1.关闭防火墙和selinux


systemctl stop firewalld.service #停止firewall 
 
systemctl disable firewalld.service #禁止firewall开机启动

2.安装rsync服务


wget https://rsync.samba.org/ftp/rsync/src/rsync-3.1.2.tar.gz

cd rsync-*.*.*  

./configure --prefix=/usr/local/rsync 

make && make install

3.配置rsync服务


Vim /etc/rsyncd.conf
#pid文件的存放位置  
pid file = /var/run/rsync.pid  
#日志文件位置,启动rsync后自动产生这个文件,无需提前创建  
log file = /var/log/rsync.log  
#支持max connections参数的锁文件  
lock file=/var/run/rsync.lock  
#用户认证配置文件,里面保存用户名称和密码  
secrets file = /etc/rsync.pw  
#rsync启动时欢迎信息页面文件位置  
motd file = /etc/rsyncd.motd  
transfer logging = yes  
log format = %t %a %m %f %b  
syslog facility = local3  
#自定义名称  
[data]  
#设置需要同步的目录  
path = /data/test/  
#模块名称与[data]自定义名称相同  
comment = data  
exclude = blank.png ; spinner.gif ; downsimple.png ; rails.png ; WEB-INF/  
#默认端口  
port = 873  
#设置rsync运行权限为root  
uid = root  
#设置rsync运行权限为root  
gid = root  
#设置超时时间  
timeout = 600  
#最大连接数  
max connections = 200  
#默认为true,修改为no,增加对目录文件软连接的备份  
use chroot = no  
#设置rsync服务端文件为读写权限  
read only = no  
#不显示rsync服务端资源列表  
list = no  
#允许进行数据同步的客户端IP地址  
hosts allow = 192.168.1.3,192.168.1.4
#增加test1目录  
[test1]  
path = /data/test1  
list = yes  
ignore errors  
comment = ucweb-file system  
secrets file = /etc/rsync.pw  
exclude = blank.png ; spinner.gif ; downsimple.png ; rails.png ; WEB-INF/

4.增加必要文件,账户密码信息,传送时显示页面信息


vi /etc/rsync.pw 
root:123456 
chmod 600 /etc/rsync.pw
   
chown root:root /etc/rsync.pw

vi /etc/rsyncd.motd
###############################  
#                             # 
#      start rsync            #
#                             #
###############################  

5.启动服务


 /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf 

开机启动


echo '/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf'>>/etc/rc.d/rc.local

6.客户端配置 .新建客户端密码文件(客户端不带用户名) 


vi /etc/rsyncd.pw
123456
chmod 600 /etc/rsyncd.pw

//data 模块    /testbak/    备份客户端地址
rsync -vzrtopg  --progress --delete  root@192.168.5.189::data /testbak/

rsync -vzrtopg --progress --delete  root@192.168.5.189::data /testbak/ --password-file=/etc/rsyncd.pw

7.定时备份执行 新建同步脚本


mkdir –p /shell/rsync/
vi rsync.sh  
#!/bin/bash    
rsync -vzrtopg  --progress --delete  root@192.168.5.189::data /testbak/     
rsync -vzrtopg --progress --delete  root@192.168.5.189::data /testbak/ --password-file=/etc/rsyncd.pwd  
  
手动同步文件  
 
cd /shell/rsync
#./rsync.sh      
自动同步:每隔五分钟同步一次  
crontab -e  
0,5 * * * * /rsync.sh 

rsync服务器文件列表
rsync -vzrtopg rsync://192.168.1.111/data
本地cp
rsync -vzrtopg  /testbak/ /usr/local/src/
scp
本地->另一台服务器
rsync -vzrtopg  /testbak/ root@192.168.1.201:/data/test/
另一服务器->本地
rsync -vzrtopg  root@192.168.1.201:/data/test/ /testbak/


--process
显示步骤
--delete
删除目标路径有而原路径没有的文件

本地到rsync服务器
rsync -avzropg --process --delete  /testbak/  root@192.168.1.111::data
rsync服务器到本地
rsync -avzrtopg --process --delete root@192.168.1.111::data  /testbak/