2015-09-01 46 views
-4

我們這裏採取的每一天6分貝轉儲備份策略1個備份刪除備份超過7天以上。我們希望刪除超過7天的備份,但我們也希望保留每天的單一備份。備份文件是在2015_08_09_01_00_01.sql.gzbash腳本通過保持每一天

任何幫助,將不勝感激

+4

我最後一次檢查SO不是代碼寫入服務。 http://stackoverflow.com/help/how-to-ask –

+0

lin或win bash? – Froggiz

+0

此鏈接可以幫助您在本網站上開始:http://stackoverflow.com/help/mcve – anishsane

回答

0

在Linux中的Bash的格式,你要像/usr/bin/find /PATH/TO/BACKUPS/ -type d -mtime +6 -exec rm -r {} \。這將使用find命令來查找/PATH/TO/BACKUPS/中超過6天的文件並將其刪除。 -type d是目錄

+0

這將刪除所有超過6天的文件,但我希望保留每天的備份。 –

1

嘗試下面這工作就好了命令。

find . -mtime +7 -mtime -24 | sort -n > testbackups.txt 
sort -u -t_ -k5,5 testbackups.txt > testbackups2.txt 
grep -v -x -f testbackups2.txt testbackups.txt > delbackups7.txt 
cat delbackups7.txt | while read file ; do rm ~/"$file" ; done 

我列出文件7天至24天之間,保留備份的一個出6個備份,然後刪除其餘的文件。