一个脚本解释inotify+rsync实现数据同步

3 篇文章 0 订阅
1 篇文章 0 订阅
#
#请做好一切前提准备,该脚本仅在服务端部署
#条件:服务端需要能够免密登录客户端主机。服务端需要部署好rsync,并下载inotify-tools,在客户端也需要下载rsync,需要创建一个密码文件,该文件含有在服务端rsync所部署的同步源密码
#如mkml-1@192.168.1.1::share,你需要在客户端创建一个rsync虚拟用户的密码文件如:echo "123456" >> /etc/rsync.pass
#
######################################################
#变量
#monitoring_dir(监控的文件) rsync_server(rsync的目标主机) log_file(日志文件存放) client_dir(客户端文件夹) client_host_list(主机列表) password_file(客户端拉取服务端文件所需的rsync密码)
monitoring_dir='/server'
rsync_server='mkml-1@192.168.1.2::share'
log_file='/etc/rsync.log'
client_dir='/client'
client_host_list='192.168.1.10'
password_file='/root/rsync.pass'
#######################################################
#监控主体
/usr/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format "%T %w %f" -e create,delete,moved_to,attrib $monitoring_dir | while read DATA TIME DIR FILE
#######################################################
#同步主体
do
    for client_host in $client_host_list;do
    /usr/bin/ssh -l root $client_host /usr/bin/rsync -az --delete --password-file=$password_file $rsync_server $client_dir 
    /usr/bin/echo "at $DATA on $TIME, file $DIR$FILE was backuped on $rsync_server" >> $log_file
    done
done

-mrq 的意思就是以递归的形式持续监听整个目录,并打印有用的信息除开

–timefmt 就是指定一个时间格式,我们这里:2022-1-1-12-15 就是 2022年1月1日12点15分

–format就是说明。我们这里需要说明下面的参数:%T就是我们刚刚定义的时间格式 %w就是我们发生事件的目录 %f标识发生事件的文件,比如我们这里指定完这些参数,最后显示出来的就是 2022年1月1日12点15分 /data这个目录的mkml.txt发生了改变

-e 就是指定我们监听的事件,比如我们这里就是创建,删除,移动,文件属性, monitoring_dir(监控的文件)

后面的就是while循环体了,后面接的就是4个参数,这些参数基本上就是拿来做日志文件的,不重要,最重要的就是rsync这里

/usr/bin/ssh -l root $client_host /usr/bin/rsync -az --delete --password-file=$password_file $rsync_server $client_dir

我这里是指定了一个密码文件的,所以一定要在客户端上写好password_file,要不然是不成功的

如果这里对这些还是不太明白的话可以到我的rsync讲解那里看看

链接: link
https://blog.csdn.net/mkmlmkmlmkml/article/details/125022001?spm=1001.2014.3001.5501

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值