저는 cron/anacron이 Linux에서 어떻게 작동하는지 꽤 잘 알고 있습니다. 내 질문은 이것입니다:
/etc/cron.daily
anacron은 로그인 시 실행되며 실행 스크립트 이후 하루 이상이 지났는지 확인합니다.- anacron은 스크립트를 실행
/etc/cron.daily
하고 타임스탬프를 업데이트합니다./var/spool/anacron/cron.daily
- 아나크론 종료
- 컴퓨터가 24시간 이상 켜져 있습니다.
- cron이 실행되고 cron.daily의 시간 일치를 감지합니다.
- cron은 그 시점부터 아무것도 하지 않습니다.
test -x anacrontab" == True
내 컴퓨터가 24시간 이상 실행되는 경우 cron은 cron.daily(Debian 기반 배포판)에서 스크립트를 어떻게 실행합니까?
기본값 /etc/crontab
(1분마다 실행)은 존재 여부(또는 더 정확하게는 -x 비트)를 테스트하고 /usr/bin/anacron
폴더가 발견되면 폴더를 무시 /etc/cron.daily
하지만 작업을 수행하기 위해 anacron을 다시 시작하지 않는 것 같습니다.
편집하다:
따라서 cron은 이 폴더에서 anacron을 실행 /etc/cron.d
하지만 컴퓨터가 켜져 있고 매일 오전 7시 30분에 로그인된 경우에만 가능합니다. 몇 가지 스프레드시트 작업을 수행한 후 스크립트가 /etc/cron.daily
1분에서 31.5시간 사이에 실행될 것이라는 결론을 내렸습니다.
전임자:
장면 1:
- 2021년 5월 23일 오후 11시 59분 로그인
- anacron 타임스탬프가
/etc/cron.daily
2021년 5월 23일 이전이라고 가정하면 anacron은 모든 스크립트를 실행/etc/cron.daily
하고 타임스탬프를 2021년 5월 23일로 업데이트합니다. - 로그아웃
- 2021년 5월 24일 낮 12시에 다시 로그인하세요.
- anacron은 마지막 실행이 2021년 5월 23일이고 현재는 2021년 5월 24일임을 확인했습니다. 따라서 anacron은 모든 스크립트를 실행했습니다.
/etc/cron.daily
- 실행 간 경과 시간: 1분
시나리오 2:
- 2021년 5월 23일 12시 로그인
- anacron 타임스탬프가
/etc/cron.daily
2021년 5월 23일 이전이라고 가정하면 anacron은 모든 스크립트를 실행/etc/cron.daily
하고 타임스탬프를 2021년 5월 23일로 업데이트합니다. - 컴퓨터는 2021년 5월 23일 오전 7시 30분까지 켜져 있고 로그인되어 있습니다.
- cron은 crontab 파일에서 anacron을 실행합니다.
/etc/cron.d
- 타임스탬프가 2021년 5월 23일이므로 아무 일도 일어나지 않습니다.
- 컴퓨터는 2021년 5월 24일 오전 7시 30분까지 켜져 있고 로그인되어 있습니다.
- cron은 crontab 파일에서 anacron을 실행합니다.
/etc/cron.d
- anacron은 마지막 실행이 2021년 5월 23일이고 현재는 2021년 5월 24일임을 확인했습니다. 따라서 anacron은 모든 스크립트를 실행했습니다.
/etc/cron.daily
- 실행 간 경과 시간: 31.5시간
답변1
모든 시스템 /etc/cron.daily
등 /etc/cron.weekly
의 파일에는 실행할 항목이 포함되어 있습니다.나크론여기에는 실행할 항목이 포함되어 있습니다.예약 된 일들. /etc/crontab
항목 포함구성 요소 실행~하도록 하다나크론다음 중 하나를 실행합니다.구성 요소 실행또는 통해예약 된 일들.
고려해야 할 또 다른 파일은 /etc/anacrontab
특정 효과를 무시할 수 있다는 것 입니다./etc/crontab
중요한 시스템예약 된 일들관련 파일은 /etc/cron.daily/logrotate
로그 순환 프로세스를 시작하는 데 사용되는 스크립트입니다.
일반 사용자예약 된 일들시스템 cronjob과 독립적으로 실행됩니다.
이는 /etc/crontab
1분마다 실행되지는 않습니다. 활동은 다양한 crontab 사양에 따라 결정됩니다.