码迷,mamicode.com
首页 > 其他好文 > 详细

12,RSYNC远程同步复制服务

时间:2019-08-28 23:54:56      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:time   传输速率   backup   配置   lock   scp命令   三种模式   password   rsync -av   

1,Rsync介绍
rsync:是一个远程同步传输工具,可通过LAN/WAN快速通过多台主机之间的文件
rsync通过“rsync算法”来远程同步传输两个主机之间不同的文件。而不需要传输已经有的文件来达到快速传输同步文件的目的
端口:873
模式:C/S

2,应用场景
备份方式:
全量备份: 备份所有的文件
增量备份: 备份与上一次备份增加的文件

应用场景
1)本端传输到对端
2)对端传输到本端
3)分层模式
技术图片
4)云服务器中转
技术图片
rsync与cp命令和scp命令的区别?
cp:在一个主机内复制数据,不能实现主机与主机之间
scp:可以实现主机与主机之间的远程复制数据,但不能实现只复制增量文件
scp -r /root 172.16.1.41:/root/ 将本端的数据复制到172.16.1.41主机的/root目录下
scp -r 172.16.1.41:/root/ /root将172.16.1.41主机的/root目录下的数据复制到本端
3,rsync三种模式
1)本地模式
2)远程模式
3)服务模式
创建测试数据文件:

1)dd if=/dev/zero of=/root/1G.txt bs=1M count=1024                                                  
for i in {1..10}                                                    
do                                                  
echo "S{i}" > /root/test_${i}.txt                                                   
done                                                    

1)本地模式
rsync -avzP /root/ /tmp 类似与cp的命令
rsync -azvP a.txt /tmp

2)远程模式
rsync -avzP /root/ 172.16.1.41:/root/ 将本地/root目录下的数据远程同步到172.16.1.41端的/root目录下
rsync -avzP 172.16.1.41:/root/ /root 将172.16.1.41端/root目录下的数据同步到本端/root目录下
a 表示以递归方式传输文件,并保持所有文件属性
v 详细模式输出
z 对备份的文件在传输时进行压缩处理
P 显示传输速率

3)服务模式
1)安装
yum -y install rsync

rpm -qc rsync 查看服务的配置文件

2)配置
1,创建统一的用户和组www uid=666 gid=666
技术图片
技术图片

2,修改配置文件(服务端)
技术图片
uid = rsync #rsync使用的用户,默认nobody
gid = rsync #rsync使用的gid 默认nobody
use chroot = no #是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为 #true就限定为模块默认目录,通常都在内网使用rsync所以不配也可以 max connections = 200 #设置最大连接数timeout = 300 #超时时间 建议300-600
pid file = /var/run/rsyncd.pid #pid文件位置
lock file = /var/run/rsync.lock #指定lock文件用来支持“max connections ”参数使总连接不会超过限制
log file = /var/log/rsyncd.log #日志文件路径
ignore errors #忽略io错误 (最好注释或者不要配上去,有了这个代码,错误信息不回输入进日志文件,只是显示在屏幕上,不利于排错)
read only = false #指定客户端是否可以上传文件,默认
truelist = false #是否允许客户端查看可用模块
hosts allow = 192.168.253.0/24 #允许连接的ip段或个别ip,默认任何人都可以连接
hosts deny = 0.0.0.0/32 #不允许连接的IP段或个别ip
auth users = rsync_backup #匿名用户严重登录
secrets file = /etc/rsync.password #指定用户名和密码文件
格式: 用户名:密码 密码不超过8位#这个是密码文件 权限最好是600 [backup] comment = "this is a comment" #此参数指定在客户端获取可用模块列表时显示在模块名称旁边的描述字
path = /backup #模块在服务端的绝对路径
3,配置密码文件和服务端存放数据目录
技术图片
技术图片
4)客户端远程备份数据到Rsync服务端成功
技术图片
备份数据在服务端显示用户和组都是www
技术图片
注意:rsync服务搞清楚root用户和配置文件里的www用户以及登录的虚拟用户rsync_backup之间的关系
1)通过ps -aux|grep rsync可以看到rsync服务的deamon是root用户在运行
2)当数据在传输的过程中式www用户在执行
3)rsync_backup用户的功能仅仅是在登录的时候做验证功能
4,如何实现免密登录远程复制,同时在定时任务中的应用场景 (客户端)
方法一
技术图片
方法二
通过环境变量预先定义好虚拟用户登录密码,export RSYNC_PASSWOR="oldboy"。
这是临时生效,可以写在脚本里,放定时任务里就可以实现免密自动备份!
技术图片
技术图片

12,RSYNC远程同步复制服务

标签:time   传输速率   backup   配置   lock   scp命令   三种模式   password   rsync -av   

原文地址:https://blog.51cto.com/13858002/2433308

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!