crontab을 사용한 예약된 재부팅이 진행되지 않았습니다. 왜 그럴까요?

crontab을 사용한 예약된 재부팅이 진행되지 않았습니다. 왜 그럴까요?

정보

Debian 10의 루트 사용자를 위한 다음 crontab이 있습니다.

root@debian:~# crontab -l
# crontab comments curtailed for serverfault
#
# m h  dom mon dow   command

30 3 * * * shutdown -r now

실행하면 uptime마지막 who -b으로 수동 재부팅을 수행한 결과(어제 오후 6시경)가 표시됩니다.

root@debian:~# uptime
 11:03:19 up 16:29,  1 user,  load average: 0.00, 0.01, 0.00
root@debian:~# who -b
         system boot  2020-12-26 18:34

어제 오후 7시경에 crontab을 생성했으니 확실히 목표 시간 이전에 설치되어 있었습니다.

질문

이것이 작동하지 않은 이유가 있습니까? 어떤 방식으로든 디버깅할 수 있나요?

답변1

크론 작업이 지정된 시간에 실행되는지 확인하려면 로그를 확인하세요.

Debian cron is login in 에서 /var/log/syslogcron 작업이 활성화된 경우 보고된 오류가 있는지 확인하세요.

그렇다면 grep cron /var/log/syslogcron이 재부팅한다고 가정한 시점에 기록된 내용이 있습니까?

또한 cron 서비스가 실행 중인지 확인하십시오. 실행 중이면 systemctl status cron.service서비스가 활성화되어 활성화되어 있다고 표시됩니다. 크론 작업을 실행하려면 크론 서비스가 실행되고 있어야 합니다.

cron에서 종료 명령을 찾을 수 없는 문제일 수도 있습니다. /usr/sbin/shutdown -r nowcron에서 사용해 보세요.

데비안 12 이상

전통적인 로그 파일systemd-journaldDebian 12에서는 다음으로 대체되었습니다.이므로 더 이상 /var/log/syslog도구 라인을 사용하여 검색할 수 없습니다 . grep이는 다른 GNU/Linux 배포판에도 영향을 미칩니다. 하지만 대신 사용할 수도 journalctl있고 로그를 직접 필터링할 수도 있습니다.

journalctl -u cron

관련 정보