设为首页 收藏本站
查看: 1147|回复: 1

[经验分享] rsync远程同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-9 08:53:45 | 显示全部楼层 |阅读模式
一、配置rsync源服务器


    wKioL1hI9hjhE44SAABYBfOXqj0658.jpg
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置具有读取权限。

1.建立/etc/rsyncd.conf配置文件(同步源中)
该配置文件需要自行建立,下面将以原目录/var/www/html、备份账号backuper为例,介绍其配置方法。

[iyunv@localhost ~]# vim /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes                                     //禁锢在原目录
address = 192.168.1.2                                //监听地址
port 873                                             //监听端口
log file = /var/log/rsyncd.log                       //日志文件位置
pid file = /var/run/rsyncd.pid                       //存放进程ID的文件位置
hosts allow = 192.168.1.0/24                         //允许访问的客户机地址
[wwwroot]                                            //共享模块名称
path = /var/www/html                             //源目录的实际路径
comment = document root of www.benet.com
read only = yes                                  //仅允许以只读方式做同步
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z //同步时不再进行压缩的文件类型
auth users = backuper                            //授权账户
secrets file = /etc/rsyncd_users.db              //存放账户的数据文件

注意:同步可以采用匿名方式。只需将”auth users”和”secrets file”配置记录去掉即可。

2.为备份账户创建数据文件
[iyunv@localhost ~]# vim /etc/rsyncd_users.db
backuper:pwd123                                       //无须建立同名系统用户
[iyunv@localhost ~]# chmod 600 /etc/rsyncd_users.db    //调整文件权限,避免账号信息泄露。

wKioL1hI-ALSggIVAAAErUOiin0351.jpg
注意:备份用户backuper需要对源目录/var/www/html有相应的读取权限。实际上只要other组有读取权限,则备份用户backuper和运行用户nobody也就有读取权限了。

1.启动rsync服务程序
[iyunv@localhost~]# rsync --daemon                                  //启用rsync服务
[iyunv@localhost~]# iptables -I INPUT -p tcp --dport 873 -j ACCEPT  //为873端口开例外

wKiom1hI-AOQRJbcAAAFO2p6AYs836.jpg

如果需要结束rsync进程,可以执行:kill $(cat /var/run/rsyncd.pid)

二、使用rsync备份工具(在rsync客户机,发起端)
1.rsync命令的基本用法
命令格式:”rsync  [选项]  原始位置  目标位置”
常用选项:-r:递归模式,包含目录及子目录中的所有文件
  -l:对于符号链接文件任然复制为符号链接文件
  -v:显示同步过程的详细信息
  -a:归档模式,保留文件的权限、属性等信息,等同于”-rlptgoD”
  -z:在传输文件时进行压缩
  -p:保留文件的权限标记
  -t:保留文件的时间标记
  -g:保留文件的属组标记(仅超级用户使用)
  -o:保留文件的属主标记(仅超级用户使用)
  -H:保留硬链接文件
  -A:保留ACL属性信息
  -D:保留设备文件及其他特殊文件
  --delete:删除目标位置有而原始位置没有的文件
  --checksum:根据校验和(而不是文件大小、修改时间)来决定是否跳过文件
配置源的表示方法:  
  用户名@主机地址::共享模块名
或者      rsync://用户名@主机地址/共享模块名

注意:在本地使用rsync命令相当于cp命令

2.rsync备份操作
wKioL1hI-AOBbeMiAAANz7Wcf1U650.jpg
在发起端上发起远程同步

wKiom1hI-APxM00qAAADW80x3PM479.jpg
确认同步结果

wKiom1hI-ASgej6uAAAT8Z-1FwI380.jpg
加上选项”--delete”选项,会在目标位置中删除原始位置没有的文件。

可以结合crond服务来完成定期同步:
wKioL1hI-ASADa1oAAACmBc3diM487.jpg
wKiom1hI-ASRjIVzAAABStWuePA175.jpg
wKioL1hI-AWhrtIMAAAChwe1yMY896.jpg
创建密码文件

wKioL1hI-AWTxgkaAAABqzr1y3Y860.jpg
wKiom1hI-AXitJX8AAAFZRWduAo387.jpg
wKioL1hI-QvQpizhAAADEox6Ebs091.jpg
给rsync命令指定密码文件,可以在同步过程中不用再输入密码。

三、配置rsync+inotify实时同步
将rsync工具与inotify机制相结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份操作。
这里将在同步源上进行实时监控,如果有文件变动,便进行远程同步,将文件备份到客户机上。
注意:实现实时同步需要使用SSH秘钥对的方式验证身份

1.调整inotify内核参数
在linux内核中,默认的inotify机制提供了三个调控参数:
max_queued_events             //表示监控事件队列(16384)
max_user_instances            //最多监控实例数(128)
max_user_watches              //每个实例最多监控文件数(8192)

wKiom1hI-QyQyeR4AAACZkr5E6o776.jpg
wKioL1hI-Qzg6Z9eAAAEnyqnvuk879.jpg
wKiom1hI-Qzz1wX3AAABwPN7Pi0368.jpg
当要监控的目录、文件数量较多时,建议加大这三个参数值。

2.安装inotify-tools
wKioL1hI-QzivC83AAAG3ydzNPg894.jpg
inotify-tools软件包可以提供inotifywait、inotifywatch辅助工具程序,用来监控、汇总改动情况。
“inotifywait”命令格式(监控/var/www/html):
[iyunv@localhost ~]# inotifywait -mrq -e create,delete,modify,move /var/www/html
选项:”-m”表示持续监控;
  ”-r”表示递归整个目录;
  ”-q”表示简化输出信息;
  “-e”表示用来指定要监控那些事件

3.编写触发式同步脚本
wKiom1hI-Q2yQNyTAAACj4qXDY8423.jpg
wKioL1hI-Q2CaFJWAAAQ1OsxTs4382.jpg

4.配置SSH密钥对验证
wKiom1hI-Q3gazubAAAB_y4WXQc030.jpg
在同步源上生成公钥文件

wKioL1hI-Q3wTDsNAAAfAkbZdcs319.jpg
将公钥文件传到发起端服务器,”rput”用户是发起端的用户,”-i”指定公钥文件。

wKiom1hI-Q6yzqeAAAACndLl0pk489.jpg
wKioL1hI-c_j_R30AAAB99sE7tY231.jpg
wKioL1hI-c_Dc7PEAAAEjAysKVo669.jpg
在发起端服务器上,修改配置文件/etc/ssh/sshd_conf,允许使用rput连接,并开启密钥对验证。

wKiom1hI-dCRZ-kQAAAFhaKJRqY167.jpg
测试SSH密钥对连接

最后,便可以在同步源上执行脚本文件,实时监控本服务器上的文件变化,并进行备份。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-311704-1-1.html 上篇帖子: CentOS6 NFS的安装配置 下篇帖子: Ubuntu 下安装 LSI MegaCLI 磁盘阵列管理工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表