마지막 두 개를 제외한 이전 백업을 모두 삭제합니다.

마지막 두 개를 제외한 이전 백업을 모두 삭제합니다.

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 {} \;

아니면 그런 것 :)

관련 정보