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

[经验分享] Redhat/Centos搭建rsync+inotify实时同步

[复制链接]

尚未签到

发表于 2018-4-24 06:46:59 | 显示全部楼层 |阅读模式
  ------同步源----------发起端---------

     192.168.1.1    192.168.1.2
  关闭iptables:iptables -F
           /etc/init.d/iptables save
  1:确定备份源
  [root@localhost ~]# mkdir /www
  [root@localhost ~]# touch /www/source{1..100}.html
  [root@localhost ~]# rpm -qa | grep rsync
  [root@localhost ~]# 提示没有可以官网下载,或者yum -y install rsync
  创建备份账号文件↓
  [root@localhost ~]# vim /etc/user.db
  添加:
  benet:redhat
  [root@localhost ~]# chmod 600 /etc/user.db //必须设置为600,否则客户端认证失败。
  创建rsync配置文件,本身就没有,需要手动创建!
  [root@localhost ~]# vim /etc/rsyncd.conf
  添加
  uid = nobody
  gid = nobody
  use chroot = yes
  address = 192.168.1.1
  port 873
  log file = /var/log/rsyncd.log
  pid file = /var/run/rsyncd.pid
  hosts allow = 192.168.1.0/24
  [www]
  path = /www
  comment = backup
  read only = yes
  dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
  auth users = benet
  secrets file = /etc/user.db
  启动(停止)rsync
  [root@localhost ~]# rsync --daemon
  最好使用:rsync --daemon --config=/etc/rsyncd.conf
  [root@localhost ~]# netstat -anput | grep 873
  显示有rsync进程在运行
  [root@localhost ~]# kill -9 PID号 或者killall -s QUIT rsync  后者柔和退出,前者暴力退出
  注意:如果重启失败,先删除pid文件,然后再启动。
  [root@localhost ~]# rm -rf /var/run/rsyncd.pid
  [root@localhost ~]# rsync --daemon --config=/etc/rsyncd.conf
  [root@localhost ~]# netstat -anput | grep rsync
  [root@localhost ~]#
  开始验证:
  (1)本地验证:(类似复制)
  [root@localhost ~]# rsync -rl /etc/httpd/ /tmp/
  (2)发起端验证:(把同步源的重要文件同步到发起端,作为备份)
  发起端操作↓
  [root@localhost ~]# mkdir /www
  [root@localhost ~]# rsync -avz benet@192.168.1.1::www /www/
  增量备份:
  [root@localhost ~]# rsync -avz --delete benet@192.168.1.1::www /www/
  OK,下行同步(类似于下载)我们已经完成了,接下来我们开始做上传↓
  [root@localhost ~]# touch /www/fqd1
  [root@localhost ~]# rsync -avz --delete /www/* benet@192.168.1.1::www
  我们看到,新创建的fqd1文件上传成功至同步源中
  注意:做如上操作之前
  1:同步源中的rsyncd.conf要把read only 改写成 no; //意思开放写入权限
  2:同步源中/www/的权限改为757 chmod 757 /www/    //意思给其他用户7的权限
  

  接下来我们做计划任务来自动远程同步
  在发起端进行如下操作:↓
  [root@localhost ~]# vim /etc/benet.password
  redhat
  [root@localhost ~]# chmod 600 /etc/benet.password
  [root@localhost ~]# crontab -e
  */1 * * * * /usr/bin/rsync -avz --delete --password-file=/etc/benet.password benet@192.168.1.1:www /www
  [root@localhost ~]# service crond restart
  [root@localhost ~]# chkconfig crond on
  以上部分是不是小菜一碟,下面我们开始比较实用的部分,rsync+inotify实时同步(在发起端进行设置)
  1、调整内核参数
  [root@localhost ~]# cat /proc/sys/fs/inotify/max_queued_events
  16384
  [root@localhost ~]# cat /proc/sys/fs/inotify/max_user_instances
  1024
  [root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches
  1048576
  [root@localhost ~]# vim /etc/sysctl.conf
  添加:
  fs.inotify.max_queued_events = 16384 //事件队列
  fs.inotify.max_user_instances = 1024 //实例数
  fs.inotify.max_user_watches = 1048576 //每个实例文件数量
  [root@localhost ~]# sysctl -p
  2、发起端安装inotify软件
  [root@localhost ~]# tar -zxvf inotify-tools-3.14.tar.gz
  [root@localhost ~]# cd inotify-tools-3.14/
  [root@localhost ~]# ./configure &&make &&make install
  每个命令成功执行,会自动执行下一条命令,需要gcc编译环境,自己yum装吧,相信看到该篇文章的读者都是有了一定基础的!^_^
  3、验证监控效果
  

  [root@localhost ~]# inotifywait -mrq -e modify,create,move,delete /var/www/html
  在另一个终端上对该目录进行增删改查的操作,将会看到效果。
  [root@localhost ~]# 同步源端重启下服务,
  4、发起端编写触发式同步脚本
  [root@localhost ~]# vim /etc/hehe.password
  添加
  redhat  //benet用户的密码
  [root@localhost ~]# chmod 600 /etc/hehe.password
  [root@localhost ~]# vim test.sh
  #!/bin/bash
  INOTIFY="inotifywait -mrq -e modify,create,move,delete /www/"
  RSYNC="rsync -avz --delete --password-file=/etc/hehe.password /www/ benet@192.168.1.1::www"
  $INOTIFY | while read DIRECTORY EVENT FILE

  do
  if [ $(pgrep rsync | wc -l) -le 0 ]:then
  $RSYNC
  fi
  done
  [root@localhost ~]# chmod +x test.sh
  [root@localhost ~]# ./test.sh &> /dev/null &
  注意,做该实验前,确保两机联通,关闭防火墙,时间同步!
  上面的脚本监控了/www/目录,清在该目录下做增删改查操作,再看看同步源是否同步成功!
  

  最后欢迎您的阅读,本人才学疏浅,如有不足之处,望各位体谅,将问题发送到本人邮箱120558876@qq.com!同时欢迎您加入我们的技术讨论组qq群:566121592
  

运维网声明 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-451066-1-1.html 上篇帖子: 3、CentOS6.5 查看命令对应的安装包 下篇帖子: vmwars虚拟机上克隆centos7和centos6.5的网络配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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