inotify在Debian系统升级中的应用
一 作用与边界
二 典型应用场景
三 快速上手与示例
sudo apt update && sudo apt install -y inotify-toolsinotifywait -m -r -e create,delete,modify,move,attrib --format '%T %w%f %e' /var/lib/dpkg /var/log/apt#!/usr/bin/env bash
set -Eeuo pipefail
BACKUP_ROOT="/opt/upgrade-backup/$(date +%F-%H%M%S)"
mkdir -p "$BACKUP_ROOT/etc" "$BACKUP_ROOT/usr/local"
# 升级前基线快照
rsync -aAX --info=name1 /etc/ "$BACKUP_ROOT/etc/"
rsync -aAX --info=name1 /usr/local/ "$BACKUP_ROOT/usr/local/"
# 升级命令(示例:安全更新)
apt update && apt full-upgrade -y
# 升级后增量:对关键目录做事件触发的增量备份
inotifywait -m -r -e modify,create,delete,move,attrib \
--format '%w%f' /etc /usr/local | while IFS= read -r file; do
rel="${file#/}"
dest="$BACKUP_ROOT/$rel"
mkdir -p "$(dirname "$dest")"
rsync -aAX --info=name1 "$file" "$dest"
logger -t upgrade-watch "Backup on upgrade: $file -> $dest"
done
sudo bash /usr/local/bin/upgrade-watch.shinotifywatch -t 30 -r -e create,delete,modify /etc /usr/local四 注意事项与最佳实践
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p),并定期审计监控规模。apt update/upgrade/full-upgrade;升级流程仍应以 APT 与维护者脚本为准。logger),并接入企业通知渠道;对失败与异常进行重试与告警收敛,避免升级窗口内告警风暴。