2014-04-30 143 views
0

刪除舊文件的日期我有一個腳本,將備份我的svn回購到另一臺服務器(設置爲一個cronjob每天運行)猛砸在名稱

#!/bin/bash 

svnadmin dump /path/to/repo | gzip > /backups/`date +%F`_repo.svn.gz 

scp /backups/`date +%F`_repo.svn.gz [email protected]:/backups/svn/ 

所以例如文件名:

2014- 04-30_repo.svn.gz,2014-04-29_repo.svn.gz,2014-04-28_repo.svn.gz

使用bash,我會如何去除大於7天的備份?

回答

0

如果你想在文件名完全依靠的日期,然後這樣的事情:

TODAY=$(date '+%s') 

for f in /backup/*_repo.svn.gz ; do 
    DATESTR=$(echo $f | sed "s/^\/backup\/\(.*\)_repo\.svn\.gz/\1/") 
    FILEDATE=$(date -d "$DATESTR" '+%s') 

    if ((FILEDATE + 7*24*60*60 < TODAY)) ; then 
     rm $f 
    fi 
done 
1

這應該工作:

find /path/to/files -name '*_repo.svn.gz' -mtime +7 | xargs rm