CentOS實(shí)時(shí)備份指定文件方案
核心組件說(shuō)明
通過(guò)inotify-tools
監(jiān)控文件系統(tǒng)事件,結(jié)合rsync
實(shí)現(xiàn)增量同步,構(gòu)建高效實(shí)時(shí)備份系統(tǒng)。
環(huán)境準(zhǔn)備
# 安裝必要工具
sudo yum install -y epel-release
sudo yum install -y inotify-tools rsync
實(shí)時(shí)監(jiān)控腳本配置
#!/bin/bash
SRC_DIR="/var/www/html" # 監(jiān)控目錄
DEST_DIR="/backup" # 備份目錄
LOG_FILE="/var/log/realtime_backup.log"
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e'
-e modify,create,delete,move $SRC_DIR | while read date time file event
do
rsync -avz --delete $SRC_DIR/ $DEST_DIR/ >> $LOG_FILE 2>&1
echo "[${date} ${time}] ${event} ${file}" >> $LOG_FILE
done
系統(tǒng)服務(wù)配置
# 創(chuàng)建系統(tǒng)服務(wù)文件
sudo tee /etc/systemd/system/realtime-backup.service <<EOF
[Unit]
Description=Real-time File Backup Service
[Service]
ExecStart=/usr/local/bin/realtime_backup.sh
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# 啟用并啟動(dòng)服務(wù)
sudo systemctl daemon-reload
sudo systemctl enable realtime-backup
sudo systemctl start realtime-backup
驗(yàn)證與調(diào)試
- 執(zhí)行
systemctl status realtime-backup
檢查服務(wù)狀態(tài) - 在監(jiān)控目錄創(chuàng)建測(cè)試文件觀察備份目錄同步情況
- 查看
/var/log/realtime_backup.log
確認(rèn)操作記錄
進(jìn)階配置建議
- 通過(guò)
--exclude
參數(shù)排除特定文件類型 - 添加郵件通知機(jī)制監(jiān)控備份異常
- 設(shè)置日志輪轉(zhuǎn)防止存儲(chǔ)空間耗盡
- 結(jié)合SSH密鑰實(shí)現(xiàn)遠(yuǎn)程服務(wù)器同步