Запланированная перезагрузка с помощью crontab не прошла. Почему это может быть?

Запланированная перезагрузка с помощью crontab не прошла. Почему это может быть?

Информация

У меня есть следующий файл crontab для пользователя root в Debian 10.

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

Я создал файл crontab вчера около 7 вечера, так что он определенно был готов до наступления целевого времени.

Вопрос

Есть ли причина, по которой это могло не сработать? Можно ли это как-то отладить?

решение1

Проверьте журнал, чтобы увидеть, было ли выполнено задание cron в указанное время.

В Debian cron вошел в систему /var/log/syslog, проверьте, есть ли сообщения об ошибках, если задание cron было активировано.

Если да, grep cron /var/log/syslogто было ли что-нибудь зарегистрировано в то время, когда cron должен был выполнить перезагрузку?

Также проверьте, запущена ли служба cron, если да, systemctl status cron.serviceто сообщает ли она, что служба активна и включена. Служба cron должна быть запущена для запуска заданий cron.

Проблема также может быть в том, что cron не может найти команду выключения, попробуйте использовать ее /usr/sbin/shutdown -r nowв cron.

Для Debian 12 и новее

Традиционные файлы журналовбыли замененыsystemd-journald в Debian 12, поэтому вы больше не можете искать в /var/log/syslogстроке using tools . Это также влияет на другие дистрибутивы GNU/Linux. Но вы можете использовать вместо этого и также фильтровать логи прямо там:grepjournalctl

journalctl -u cron

Связанный контент