rsync结合inotify工具实现实时同步传输文件

rsync结合inotify工具实现实时同步传输文件,第1张

rsync结合inotify工具实现实时同步传输文件 前言

环境:centos7.9 inotify-tools-3.1

我们在上一篇《Linux远程传输命令scp、rsync(tar打包归档并在系统之间传输文件)》中详细介绍了rsync命令的使用方法,rsync命令主要是用来同步两个系统之间的文件,rsync命令是增量同步,但rsync命令无法做到实时同步,想要自动同步我们首先想到的是结合crontab定时任务来实现,但定时任务最小粒度级也是每分钟同步,这样我们有什么办法能做到实时同步呢,办法就是rsync结合inotify工具来实现实时同步传输文件。

安装 inotify-tools工具
[root@iflytek ~]# wget http://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
[root@iflytek ~]# cd inotify-tools-3.13
[root@iflytek  inotify-tools-3.13]#./configure && make && make install				#安装inotify
[root@iflytek /]# ll /usr/local/bin/inotify*										#安装完成会产生两个命令
-rwxr-xr-x 1 root root 52552 Oct 16 01:29 /usr/local/bin/inotifywait				#inotifywait等待						
-rwxr-xr-x 1 root root 54640 Oct 16 01:29 /usr/local/bin/inotifywatch				#inotifywatch看守
[root@iflytek /]# 
inotifywait命令的使用 编写脚本

inotifywait只是一个监控文件的命令,那么如何做到实时监控呢,我们需要编写while循环脚本,内容就写inotifywait结合rsync传输文件,这就不就能做到实时监控文件的变化并传输到远程服务器上了吗,脚本内容如下:

[root@iflytek ~]# vim  inotifywait_rsync.sh								#创建脚本文件并写入一下内容
[root@iflytek ~]# cat inotifywait_rsync.sh								#脚本内容
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /root/test1/ | while read events
do
/usr/bin/rsync -avz --delete /root/test1/ /root/test2/
echo "`date +%F %T`出现事件$events">>/root/inotifywait.log 2>&1 
done
[root@iflytek ~]# chmod u+x inotifywait_rsync.sh
[root@iflytek ~]# nohup /bin/sh /root/inotifywait_rsync.sh &			#nohup 与&符号结合使脚本在后台不被窗口关闭中断运行
[root@iflytek ~]# echo "tetstst" >>test1/file2							#在监控目录test1中创建一个file2文件
[root@iflytek ~]# ll test2/												#查看test2/	目录里面已经同步过来了一个file2文件
total 12
-rw-r--r-- 1 root root 6 Oct 16 02:57 file2

 [root@iflytek ~]# tail -22f inotifywait.log							#查看日志
2021-10-16 02:57:49出现事件/root/test1/ CREATE file2
2021-10-16 02:57:49出现事件/root/test1/ MODIFY file2

因条件有限,所以以上inotifywait_rsync.sh脚本内容只是测试了本地系统/root/test1/和 /root/test2/目录下的文件同步,可根据实际使用在两个Linux系统执行远程同步文件。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4663593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存