验证过:rsync+inotify实现实时同步+ service+inotifywait --exclude

本文介绍如何使用rsync结合inotify实现文件系统的实时同步,并详细解释了如何编写Linux服务脚本,确保同步服务开机自启动。同时,文中还提供了具体的shell脚本示例,包括如何检查监听状态及清理原有进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rsync+inotify实现实时同步
通过上面的步骤可以实现rsync+inotify 实时同步,那么我想要将写好的脚本制作成service,并且开机自启动。

编写属于自己的Linux Service命令

Linux平台下的service程序编写指南:start \stop
1.cd /etc/init.d/

2.新建一个sh文件:vi inotify

#!/bin/sh
#chkconfig: 2345 80 90       
    #description:auto_run
#后面想要加载成服务是必须要写上面的两个

ouy=/home/wwwroot/inotify_ou.sh

#-e 代表文件存在
if [ ! -e "${ouy}" ] ;    #判断文件是否存在
then                       
echo "Check File and Folder"
exit 9
fi

if [ $(ps -ef |grep -c /inotify ) -gt 0 ];  #删除之前存在的sh。
then
    echo "have process"
    kill -9 $(ps -ef|grep /inotify_ |gawk '{print $2}' |tr -s '\n' ' ')
    kill -9 $(ps -ef|grep /inotifywait |gawk '{print $2}' |tr -s '\n' ' ')
    echo "cleaned process."
fi
   sh $ouyeel   &     #执行,&代表在后台执行

Linux Shell 编程——基本语法
eg:
{} 代码规范要带花括号。
-e 代表是否存在
if 语句中的空格不能漏掉,否则出错
在shell编程中,直接写命令即可。

服务不支持 chkconfig ———没添加代码开头前两行

根据进程名杀死进程 -kill进程名
我想要先检查是否已经进行了监听,如果监听删除原来的监听事件。
通过判断进程中是否有inotify关键字的进程的行数判断。

linux ps命令的用法
ps是查看进程的命令。
-e 代表所有进程
-f 代表程序之间的关系

linux grep命令
grep 使用正则表达式搜素文件
-c 行数
最后跟查找的文件名的正则表达式即:
grep -c expression

gawk 命令
gawk 用来处理文本文件中数据。
它通过自动将变量分配给每行中的每个数据元素实现这一功能。
0 1表示文本行中的第一个数据字段
2 n表示文本行中的第n个数据字段

linux tr命令详解
主要是做字符串的处理,去重,替换等
-s 删除所有重复出现字符序列,只保留第一个

格式:

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file

Linux & 后台运行
& :放到后台运行。

3.chkconfig是用于把服务加到开机自动启动列表里,只要启动它,就能自动启动,重启后永久生效

4.chkconfig –add inotify

5.chkconfig inotify on/off 重启后永久生效

到此,服务就添加成功。

另外:配置一下inotifywait监听的SH文件:

rsync+inotify实现实时同步修改的地方是:

${inotify_home}/bin/inotifywait -mrq --exclude '^/home/wwwroot/default/ouyeel/tmp' --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \
因为在同步时,tmp是缓存文件夹,所以不需要同步,故使用inotify自带的

的exclude参数。

inotify-tools的inotifywait工具用exclude 和 fromfile 排除指定后缀文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值