Root crontab не работает

По какой-то причине мой корневой crontab не работает.

Попытка перезагрузить устройство каждую ночь в полночь.

В качестве root должно быть указано следующее:

crontab -e

Затем добавьте:

0 0 * * * /sbin/shutdown -r now

Когда я тестирую, используя некоторые значения, закрывающие текущее время, ничего не происходит. Я установил NTP и убедился, что часовой пояс правильный. Я также уточняю, используя 24-часовые часы. Например, чтобы проверить эту строку прямо сейчас (5:35 PM), я пытаюсь ввести следующее:

36 17 * * * /sbin/shutdown -r now

Я проверил время с датой -R. Время для запуска crontab приходит и уходит, и система не перезагружается. Что мне здесь не хватает?

3 ответа

Решение

У меня есть три решения для вас.

  1. Вызвать crontab с помощью crontab -e -u root

  2. Убедитесь, что у вас есть пустая строка в конце файла cronjob, а это означает, что каждая строка заканчивается новой строкой.

  3. Вам может понадобиться перенаправить вывод в devnull: shutdown -r now > /dev/null

Вот две полезные веб-страницы для cronjobs:

CRON Tester

CRON Generator

Вы также можете аккуратно обрабатывать cronjobs с помощью webmin.

Кроме этого, у вас есть как минимум еще два способа перезагрузить компьютер в полночь.

Одним из них является автоматическое выполнение команды shutdown при входе в систему, но с определенным временем в качестве параметра вместо "now":

shutdown -r 00:00

Однако это приведет к широковещательному сообщению о предстоящем отключении при каждом входе в систему (это может быть совсем не плохо). Что ж, вы также можете сделать это во время загрузки, добавив скрипт в init.d, по-прежнему получая сообщение.

Другой, чтобы использовать atкоманда:

at 0am

Введите команду shutdown -r now и сохраните его с помощью Ctrl + D или выполните скрипт для команды и выполните:

at -f restart_script.sh 0am

Надеюсь, это поможет вам получить желаемый результат.

Задания System Cron перечислены в файле /etc/crontab. Поэтому редактирование этого файла напрямую поможет вам выполнить команду перезагрузки от имени пользователя root.

следовательно,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

убедитесь, что вы проверили файл журнала Cron после редактирования crontab, так как он сообщит вам, был ли установлен cron успешно.

Я проверил это, и это сработало для меня. Перезагрузил мою систему в 8:23 вечера

Удачи!

36 17 * * * и т. Д.

36 17 не способ указать точное время в вашем хрон.

проверьте через команду date, чтобы увидеть, работает ли ваша система по американскому или европейскому времени

используйте 17 36, если европейское время, и если ваша система использует время 24 ч или 5 36, если ваша система использует время США и 12 ч.

Другие вопросы по тегам