![마지막 두 개를 제외한 이전 백업을 모두 삭제합니다.](https://linux55.com/image/107507/%EB%A7%88%EC%A7%80%EB%A7%89%20%EB%91%90%20%EA%B0%9C%EB%A5%BC%20%EC%A0%9C%EC%99%B8%ED%95%9C%20%EC%9D%B4%EC%A0%84%20%EB%B0%B1%EC%97%85%EC%9D%84%20%EB%AA%A8%EB%91%90%20%EC%82%AD%EC%A0%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
Linux 서버를 백업하기 위해 스크립트를 사용하고 있습니다. 다음 코드를 사용하여 시스템 이름을 지정합니다.
# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"
이전 백업을 모두 삭제하고 마지막 두 개는 그대로 두고 싶습니다. 어떻게 해야 합니까?
답변1
백업 스크립트가 전날 생성된 아카이브를 삭제하도록 할 수 있습니다.
# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"
# Do backup
#...
# Delete old backup (assuming GNU date)
deleteday=$( date -d '2 days ago' +'%A' )
rm -f "$hostname-$deleteday.tgz"
답변2
find ... -mtime +2 -exec rm {} \;
아니면 그런 것 :)