设为首页 收藏本站
查看: 998|回复: 0

[经验分享] rsync+inotify 远程备份 同步 centos

[复制链接]

尚未签到

发表于 2018-4-26 06:47:11 | 显示全部楼层 |阅读模式
  rsync开源的备份工具支持增量备份,保持连接和权限,并且采用优化的同步算法,传输前可以执行压缩等功能。所以非常适合远程备份。
  

  rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!inotify使用来对文件状态进行检测的一个工具。
  
  rsync同步分为两种方式:
  1:ssh方式  更为安全,保密性强  (因为公司服务器间全部禁rootssh登录所以我选择用rsync方式进行数据同步)

  2:rsync方式
  

  环境配置图
   DSC0000.png
  rsyn端配置:
  

  1. 安装 rsync 和 xinetd服务(如果系统有的话请自动略过)
     rsync默认是用 rsync --daemon启动服务的。比较麻烦所以我们要把它添加到xinetd中
  

   DSC0001.png
  
  2. 打开/etc/xinetd/rsync文件设置允许xinetd启动rsync服务器

  

DSC0002.png

  

  3.创建rsyncd配置文件并设置备份目录相关信息
  

  默认是没有rsyncd.conf这个文件的我们要自己创建。
    
DSC0003.png

  补充: auth users可以不是系统用户。这个用户是我们客户端备份时用的用户
  

  4.设置备份所用的maomao用户和密码
  

  编辑/etc/rsync.user文件内容如下:
  

DSC0004.png

  

  5.rsync端配置完成。启动服务
  

DSC0005.png

  

  web端配置
  


  •   测试下rsync配置是否正常。rsync是否可用。
  

  在rsync端的/usr/local/maomao/目录下创建一个文件。在web端运行以下命令看是否同步到rsync端的/usr/lcoal/maomao/这个目录下的文件。如果到了。说明rsync配置木问题。
  

DSC0006.png

  

DSC0007.png

  

  

  报错解决:
  模块认证错误。我这里的原因是  rsync端  /etc/rsync_user   的权限没有设置为600导致的这个报错。如果你设置了600权限 ,  还是报这个错误  , 请在rsyncd.conf配置文件  里找原因吧。
DSC0008.png

  rsync语法讲解:
   -r: 递归模式
   -l: 保持符号链接文件
   -v:显示同步详细信息
   -a:归档模式,保留文件权限,属性等等信息。等于-rlptgoD的组合。
   -z: 在传输中压缩文件
   -p:保留文件权限
   -t:保留文件时间
   -g:保留文件属组
   -o: 保留文件属主
   -H:保留硬链接文件
   -D:保留设备及其他特殊文件
   --delete:删除目标位置有而源位置没有的文件。
  

  -a:太牛逼了整合了这么多。所以看着挺多的选项现在只要记住5个就可以了。(黑色字体的5个)
  

  2. rsyn同步没问题后,我们配置inotify
  

安装inotify。
DSC0009.png
  

  inotify:可以对文件的删除,创建,访问,属性修改。等状态进行监控,rsync结合inotify可以实现触发式的备份--只要web端有文件发生变化。就立即进行增量备份。
  

  如果监控的文件数量过大的话,建议修改 inotify内核参数(以下下三个参数要大于监控目标的文件数)
   vi /etc/sysctl.conf
  

  如果配置文件内没有请自行添加
  fs.inotify.max_queued_events = 16384
  fs.inotify.max_user_instances = 2048
  fs.inotify.max_user_watches = 1048576
  

  3. 写触发式同步脚本
  

DSC00010.png

  inotify语法讲解
      -m:持续监控

      -r:递归目录

      -q:简化输出信息

      -e:指定监控那些时间后面跟 create,move,delete等。

  

  4.在web端创建同步用户maomao的密码
  

DSC00011.png

  

  5. 测试脚本可用性。
  

  运行脚本 在web的/usr/local/maomao 目录下创建一个maomao_test文件。过一会去rsync端查看下是否同步
  如果脚本可用将脚本加入开机启动中。
  

  echo “/usr/local/maomao/rsync.sh” >> /etc/rc.local
  

  rsyn配置结束。
  

  

运维网声明 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.yunweiku.com/thread-451982-1-1.html 上篇帖子: red hat替换centos yum源 下篇帖子: Linux centos安装mysql(解压手动安装)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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