備份文件隨時間增長會佔用大量磁盤空間,結合 find 的 -mtime 與 -exec 實現自動清理,配合 crontab 定時執行,構建零維護備份保留策略。
find 目標目錄 -mtime +天數 -name "匹配模式" -exec rm -rf {} \;
| 參數 | 含義 |
|---|---|
| -mtime +30 | 查找修改時間超過 30 天的文件(+ 表示大於) |
| -name "*.*" | 匹配所有帶擴展名文件,可改為 "*.log"、"backup_*" 等 |
| -exec rm -rf {} \; | 對每個結果執行強制刪除,{} 佔位符代表文件路徑 |
#!/bin/bash
# AutoDelBackup.sh
find /root/Backup -mtime +30 -name "*.*" -exec rm -rf {} \;
# 編輯當前用戶定時任務 crontab -e # 每天凌晨 2 點執行 0 2 * * * /root/AutoDelBackup.sh
-ctime 替代 -mtimefind /backup -type d -empty -deletels -t /backup/*.tar.gz | tail -n +6 | xargs rm -f
find /backup -mtime +30 -name "*.tar.gz" -exec rm -vf {} \; >> /var/log/cleanup.log 2>&1chmod +x AutoDelBackup.sh-print 測試:find /backup -mtime +30 -printionice -c3 降低 I/O 優先級