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


10

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

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

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

crontab -e

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

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

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

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

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


Просто чтобы убедиться, что вы закрываете crontab после редактирования, верно? Кроме того, как вы "работали от имени root"? Какой выход sudo crontab -l | grep -v '#'?
тердон

Почему этот тег отмечен как Debian ? Если речь идет о Debian, а не Ubuntu, пожалуйста, спросите об Unix и Linux .
Муру

Потому что Debian лежит в основе Ubuntu, я верю.
Атомиклан

Ответы:


11

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

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

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

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

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

CRON Tester

CRON Generator

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

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

Один из них - запускать команду shutdown автоматически в качестве сценария при входе в систему, но с определенным временем в качестве параметра вместо «сейчас»:

shutdown -r 00:00

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

Другое - использовать atкоманду:

at 0am

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

at -f restart_script.sh 0am

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


Решение состояло в том, чтобы вывести в dev null. Интересно, почему?
Атомиклан

Это связано с тем, что задание cron имеет собственную среду, в которой нет такой стандартной системы ввода / вывода, которую вы ожидаете, и процесс завершается неудачно, поскольку он пытается передать сообщения в отсутствующий канал вывода. Задание Cron на самом деле сильно отличается от запуска какой-либо команды в терминале, как любой пользователь. Рад слышать, что у вас все получилось.
Ахти Кому

0

Задания 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 вечера

Удачи!


-3

36 17 * * * и т. Д.

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

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

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


Не правда! Cron не использует 12-часовой формат времени, и формат всегда мм мм чч ДД ММ ШД.
Ахти Кому

Пожалуйста, прочитайте весь пост в следующий раз.
Атомиклан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.