IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> rsync结合inotify工具实现实时同步传输文件 -> 正文阅读

[系统运维]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系统执行远程同步文件。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:20:35  更:2021-10-17 12:21:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:47:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码