크론 주간 백업 날짜는 어떻게 설정하나요?

크론 주간 백업 날짜는 어떻게 설정하나요?

cron내 플래시 드라이브에 대한 자동 백업을 수행하는 명령을 작성 중입니다 .
저는 tar ... -N <some date>백업을 해두는 데 사용합니다.
문제는 올바른 날짜를 제공하는 명령을 작성하는 방법입니다.

을 위한주간 백업나는 다음을 생각했다:
date -d '1 week ago' +%Y%m%d
date -d 'monday week ago' +%Y%m%d

하지만 크론 예정 시간(월요일 이후)에 노트북을 끄면 상황이 복잡해집니다. anacron이 화요일에 작업을 시작한다고 가정해 보겠습니다. 첫 번째 변형에서는 지난 월요일의 모든 변경 사항이 누락되었습니다. 두 번째 변종은 지난주 전체를 놓쳤습니다. anacron으로 백업을 수행하는 경우의 경우
date -d 'monday 1 week ago' +%Y%m%d와 동일 date -d 'monday week ago' +%Y%m%d
date -d 'monday 2 week ago' +%Y%m%d하지만 cron의 경우(일반적인 경우) 1주가 더 추가됩니다.

어떤 생각이 있습니까? 백업 시간 anacron을 호환되게 만들 수 있습니까?

답변1

아이디어는 다음과 같습니다. 백업이 실행될 때마다 백업 스크립트는 touch파일을 전송하여 현재 날짜를 기록합니다. 다음에 백업이 실행될 때 이전 백업의 날짜 스탬프 파일을 에 대한 인수로 사용합니다 tar -N. 예를 들어, 쉘 스크립트에서 논리는 다음과 같습니다.

# Begin the latest backup run now.
touch /backups/new-backup-time

tar -N /backups/prev-backup-time -c ... ...

# Save the latest backup time for the next run.
mv /backups/new-backup-time /backups/prev-backup-time

tar -N이는 옵션이 날짜일 수도 있고 데이터 수정 시간이 날짜를 지정하는 파일의 경로 이름일 수도 있다는 사실에 따라 달라집니다 .

관련 정보