2014-04-30 4 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