rsync+inotify实现远程同步
admin
2023-03-09 20:21:10
0
  • rsync介绍

    rsync,英文全称是remote synchronize,是一款实现远程同步功能的免费软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件。甚至还可以实现只同步一个文件里有变化的内容部分,所以可以实现快速的同步备份数据。同时,rsync还可以实现同步本地数据、删除文件和目录的功能。

  • inotify介绍

Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。

  • rsync+notify实现自动同步

如果要实现定时同步数据,可以在客户端将rsync加入定时任务,但是定时任务的同步时间粒度并不能达到实时同步的要求。在Linux kernel 2.6.13后提供了inotify文件系统监控机制。通过rsync+inotify组合可以实现实时同步。

  • 实验要求:

源服务器:192.168.177.132(rsync,httpd)

发起端:192.168.177.132(rsync,httpd,inotify-tools)

源服务器
# rpm -q rsync  //查看rsync有没有安装
# vim /etc/rsyncd.conf   //rsync的配置文件

 uid = nobody
 gid = nobody
 use chroot = yes
 address = 192.168.177.132
 port 873
 log file = /var/log/rsyncd.log
 pid file = /var/run/rsyncd.pid
 hosts allow = 192.168.177.0/24

 [wwwroot]
 path = /var/www/html
 comment = www.kgc.cn
 read only = yes
 dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
 auth users = backuper
 secrets file = /etc/rsyncd_users.db
# vim /etc/rsyncd_users.db
  backuper:abc123  //账号跟密码的格式
# chmod 600 /etc/rsyncd_users.db
# yum install httpd -y   //安装web服务
# rsync --daemon  //启动rsync服务
# systemctl stop firewalld.service  //关闭防火墙
# setenforce 0   //增强性安全功能
# chmod 777 /var/www/html/
# cd /var/www/html
# echo "this is test" > 123.txt

rsync+inotify实现远程同步
rsync+inotify实现远程同步
rsync+inotify实现远程同步
rsync+inotify实现远程同步

发起端
# systemctl stop firewalld.service
# setenforce 0  //必须先关闭防火墙
交互,输入的是源服务器的地址
# rsync -avz backuper@192.168.177.132::wwwroot /opt/  
免交互,无需输入密码
# vim /etc/server.pass
# chmod 600 /etc/server.pass
# rsync -az --delete --password-file=/etc/server.pass backuper@192.168.177.132::wwwroot /opt

rsync+inotify实现远程同步

rsync+inotify自动同步

inotify装在发起端

rsync在源服务器上

源服务器:
# vim /etc/rsyncd.conf
   read only = no
# pkill -9 rsync
# cd /var/run/
# rm -rf rsyncd.pid //删除pid进程
# rsync --daemon  //重启服务
发起端:
# chmod 777 /var/www/html/
# tar zxvf inotify-tools-3.14.tar.gz -C /opt //解压
# cd inotify-tools-3.14/
  ./configure
# yum install gcc gcc-c++ -y  //安装编译环境
# make && make install
# vim /etc/sysctl.conf   //进行优化
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
# sysctl -p   //立即生效
# inotifywait -mrq -e modify,create,move,delete /var/www/html/  //对站点进行监控
# vim /opt/inotify.sh  //编写能同步的脚本
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.177.132::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done
# chmod +x inotify.sh
# ./inotify.sh

rsync+inotify实现远程同步
rsync+inotify实现远程同步
rsync+inotify实现远程同步
rsync+inotify实现远程同步

相关内容

热门资讯

不止聂永真,九把刀拿了上亿补助... 海峡导报综合报道 台电(台湾电力公司)近日更换新的LOGO引发争议,尤其是现在台电还在亏损3000多...
阿根廷法医披露马拉多纳去世前状... 阿根廷一名法医日前在足球名宿迭戈·马拉多纳死亡案件的审判中表示,马拉多纳去世前遭受了约12个小时的痛...
斯洛伐克总理在俄表态:我是欧盟... 【环球网报道 记者 索炎琦】据俄罗斯《消息报》《乌克兰真理报》等媒体报道,斯洛伐克总理菲佐8日在莫斯...
日媒炒作:日本政府计划新设“对... 【环球网报道 记者 林泽宇】据日本《读卖新闻》、全日本新闻网5月9日报道,日本政府计划在2027年末...
与伊朗战争有关,阿联酋被曝大规... 美以对伊朗的战争搅动地区局势,巴基斯坦致力于通过外交途径结束战争。然而据美媒爆料,遭到伊朗猛烈打击的...
腾格里沙漠的光伏电,一度只值5... 【文/观察者网科工力量 石燕红】4月下旬,我们沿着腾格里沙漠的南缘跑了几天。在宁夏中卫,国家能源集团...
郑州古荥城市更新一期097地块... 【大河财立方 记者 陈诗昂】 郑州市惠济区古荥城市更新(一期)项目(下称古荥一期项目)迎来新进展。5...
赋能高端算力自主化!我国首台双... 由中国科学院牵头,联合武汉大学、华中科技大学和武汉量子技术研究院等团队联合研发的国内首台双核原子量子...
凝聚品牌力量 共筑美好未来——... 五月的莫干山,竹林叠翠,生机盎然。5月9日至12日,2026世界品牌莫干山大会将在浙江省湖州市德清县...
四部门发文!促进人工智能与能源... 【大河财立方消息】 5月8日,据国家能源局微信公众号,国家能源局近日会同国家发展改革委、工业和信息化...