배경: 매일 노트북에 있는 일부 파일을 백업하고 싶은데, 때로는 노트북이 며칠 연속으로 종료되는 경우도 있습니다.
백업을 작업으로 예약 cron
하고 이를 사용하여 누락된 작업을 실행해 보았지만 어떻게 작동하는지 anacron
잘 모르겠습니다 .anacron
예를 들어, 노트북이 종료된 지 3일 후에 노트북을 시작하면 anacron
누락된 3개의 백업 작업이 모두 수행됩니까? 이것이 사실이라면 anacron
일정 시간(이 경우 1일 이상) 지연된 작업 실행을 중지하는 가장 좋은 방법은 무엇입니까?
답변1
매일 백업을 실행하는 작업이 있고 anacron
시스템이 3일 동안 다운된 경우 anacron
이 작업이 실행됩니다 .한 번4일차에 시스템이 온라인 상태가 될 때.
세부적으로, anacron
지정된 빈도(일 단위)로 정기적으로 반복되는 명령을 지정할 수 있습니다. 호출 되면 anacron
(시작 시 또는 미리 정의된 시간 동안 발생할 수 있음) 구성 파일에서 작업 목록을 읽습니다 /etc/anacrontab
. 각 작업에 대해 anacron
지난 n일 이내에 작업이 실행되었는지 확인합니다. 일상 업무의 경우 오늘이 마지막 날이 됩니다. 이 시간 동안 작업이 실행되지 않은 경우 anacron은 작업을 실행합니다.
작업 실행이 완료된 후 anacron
아래 파일에 실행 날짜가 기록됩니다 /var/spool/anacron
. 이 파일은 다음날 anacron이 호출될 때 작업 상태를 확인하는 데 사용됩니다.
anacron
마지막 실행 이후 경과된 일수와 설정된 실행 빈도만 조회되므로 해당 작업이 여러 번 실행되는 문제가 없습니다 .
/etc/anacrontab
일일 anacron 작업은 다음 구문을 사용하여 구성 파일에서 설정할 수 있습니다:
1 15 backup-job /path/to/backup/script.sh
1은 지정된 명령을 실행하는 빈도(일)이고, 15는 작업 실행에 추가되는 지연 시간(분)이며, "backup-job"은 식별자, "/path/to/backup/script.sh"는 실행 시간입니다. 명령을 실행합니다. 당신은 볼 수 있습니다man 8 anacron
그리고man 5 anacrontab
자세한 내용은.
답변2
이 방법으로 할 수 있는 가장 좋은 방법은 백업이 시작될 때 잠금 파일을 생성하고 스크립트 끝에서 삭제하는 것입니다. 물론, 잠금 파일을 생성하기 전에 해당 파일이 존재하는지 확인하고, 존재한다면 스크립트를 중지해야 합니다. 외부에 의해 스크립트가 종료되고 잠금 파일이 여전히 존재하는지 주의 깊게 확인하세요.