我需要自動清理僅保存備份文件的基於Linux的FTP服務器。刪除目錄中的所有文件,但列出的匹配特定條件除外
在我們的「\ var \ DATA」目錄中是一個目錄集合。這裏用於備份的任何目錄都以「DEV」開頭。在每個「DEVxxx *」目錄中都有實際的備份文件,以及在這些設備維護過程中可能需要的所有用戶文件。
我們只想保留下列文件 - 什麼都在這些「DEVxxx *」目錄中找到要刪除的:
不符合上述The newest two backups: ls -t1 | grep -m2 ^[[:digit:]{6}_Config]
The newest backup done on the first of the month: ls -t1 | grep -m1 ^[[:digit:]{4}01_Config]
Any file that was modified less than 30 days ago: find -mtime -30
Our good configuration file: ls verification_cfg
任何應予以刪除。
我們如何編寫腳本?
我猜BASH腳本可以做到這一點,我們可以創建一個cron作業每天運行來執行任務。
過程中看起來不錯,但,有我們試圖訪問我們想要的文件中的一個微小的機會,它只會在/var/DATA.bak存在。 沒有辦法去除所有列出的文件嗎? – Calab
嘗試'rsync -a --delete /var/DATA.bak//var/DATA /'而不是'rm -rf/var/DATA'。 –