前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用inotify-tools监控配置文件变化并作备份

用inotify-tools监控配置文件变化并作备份

作者头像
用户10002156
发布2024-01-17 13:25:57
2310
发布2024-01-17 13:25:57
举报
文章被收录于专栏:生活处处有BUG生活处处有BUG

背景

可以使用inotifywait命令来监控文件系统事件,包括文件新增和减少,以及文件名和文件路径的变化。:

要监控文件新增事件:

代码语言:javascript
复制
inotifywait -m /path/to/directory -e create

要监控文件减少事件:

代码语言:javascript
复制
inotifywait -m /path/to/directory -e delete

要监控文件名或文件路径的变化:

代码语言:javascript
复制
inotifywait -m /path/to/directory -e attrib

比如只监控文件的创建,删除,移动(文件名和路径)等,然后使用rsync命令来实现文件的实时同步

代码语言:javascript
复制
#!/bin/bash

# 监控的目录
WATCH_DIR="/path/to/directory"

# 监控目录变化,并执行指定命令
inotifywait -m -r -e create,delete,moved_to,moved_from --format '%w%f' "$WATCH_DIR" |
while read FILE
do
    # 执行使用rsync命令将文件同步到远程服务器
    rsync -avz --progress "$FILE" user@remote_server:/path/to/destination
done

案例

使用 inotifywait 命令结合一些脚本和命令来监控 Nginx 配置文件,并在配置文件有更改时进行备份。

代码语言:javascript
复制
#!/bin/bash

# 监控的文件路径
WATCH_FILE="/etc/nginx/nginx.conf"

# 备份文件的目录
BACKUP_DIR="/etc/nginx/backup"

# 当前时间戳
TIMESTAMP=$(date +%Y%m%d%H%M%S)

# 监控文件变化并执行相应操作
while true; do
    # 使用 inotifywait 监控文件变化事件
    inotifywait -e modify,move,create,delete "$WATCH_FILE" 2>/dev/null

    # 备份原文件到指定目录
    cp -p "$WATCH_FILE" "$BACKUP_DIR/nginx.conf.$TIMESTAMP"
done

进阶版

监控多个配置文件

代码语言:javascript
复制
#!/bin/bash

# 监控的文件路径
WATCH_FILES="/etc/nginx/nginx.conf /etc/mysql/my.ini /www/website/project/.env"

# 备份文件的目录
BACKUP_DIR="/home/xj/Desktop/tmp/0110"

# 监控文件变化并执行相应操作
function monitor_and_backup {
    local file="$1"
    while true; do
        # 当前时间戳
        TIMESTAMP=$(date +%Y%m%d%H%M%S)
        # 使用 inotifywait 监控文件变化事件
        inotifywait -e modify,move,create,delete "$file" 2>/dev/null

        # 备份原文件到指定目录
        FILENAME=$(basename "$file")
        mkdir -p "$BACKUP_DIR/$FILENAME/$TIMESTAMP"
        cp -p "$file" "$BACKUP_DIR/$FILENAME/$TIMESTAMP/"
    done
}

for FILE in $WATCH_FILES; do
    monitor_and_backup "$FILE" &
done

wait
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 案例
  • 进阶版
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档