Cronjob для перезагрузки каждый день

Похоже, что Windows захватил загрузочный сектор. Linux может загрузить Windows, но Windows не может загрузить ничто больше. Необходимо переключить загрузочный сектор назад на Linux. Загрузчик Linux (часть системы, которая выполняется сначала после кода в постоянной памяти и загружает фактическую операционную систему), называют Личинкой. Можно восстановить Личинку из носителя установки (CD, USB, …), что Вы раньше устанавливали систему. Шаги описаны в руководстве: Fedora 15 (Личинка 1), Fedora 16 (Личинка 2). Короче говоря загрузите носитель установки в спасательном режиме (linux rescue), затем выполните команды

chroot /mnt/sysimage
/sbin/grub-install /dev/sda

-4
17.11.2012, 12:13
4 ответа

Поскольку другие комментаторы сказали, если uptime отчеты 7 дней времени работы, система не перезагрузила в этом в то время как.

Помимо @Dennis' корректный комментарий, удалите канал к /dev/null временно, затем проверьте rootпочта и /var/log/syslog.

Если reboot команда не находится на выполняющейся оболочке PATH, крон не мог бы просто найти его.

Некоторые системы не имеют reboot команда, в этом случае необходимо было бы использовать shutdown -r now.

6
28.01.2020, 05:19
  • 1
    Спасибо. Мне не настроили MTA, таким образом, я пытался перенаправить вывод в файл. Я должен был использовать полный путь для перезагрузки, которая хорошо работала. –  ChocoDeveloper 18.11.2012, 07:53

&> синтаксис для перенаправления и stderr и работы stdout в ударе, но это, вероятно, не работает в /bin/sh, который используется для выполнения cron команды.

Попробуйте это:

0 5 * * * root reboot > /dev/null 2>&1

Это также фиксирует ошибку синхронизации, на которую указывает комментарий Dennis Kaarsemaker.

(Я не комментирую, является ли это хорошей идеей во-первых.)

3
28.01.2020, 05:19
  • 1
    Теперь мы говорим! Я собираюсь пробовать это, спасибо –  ChocoDeveloper 18.11.2012, 06:19
  • 2
    @Michael Kjörling: >& и &> обе работы в ударе; только >& работы в csh и tcsh. Начиная с использования вопроса &>, и csh и tcsh не релевантны, я удалил ссылку на них. –  Keith Thompson 02.12.2013, 11:56
  • 3
    Что делает the2> &1, обозначают? –  IgorGanapolsky 24.10.2016, 02:31
  • 4
    @IgorGanapolsky: >/dev/null стандартный вывод отбрасываний. 2>&1 направляет stderr к тому же месту, таким образом, весь вывод отбрасывается. –  Keith Thompson 24.10.2016, 03:32

Я думаю лучший ответ, который я могу дать Вам, должен получить системного администратора, который может узнать что случилось с полем и почему перезагрузки занимают много времени. Все другие возможные решения Вашей "проблемы" (такие как проверка $PATH, использование полного пути к reboot или использование shutdown -r) просто обходные решения, которые заставят Ваш cronjob работать, но сохранить Вас слепыми относительно того, что является на самом деле неправильным.

1
28.01.2020, 05:19

Проверьте страницу справочника на cron Вы установили. Это может сделать различные вещи, в зависимости от реализации - как установка только определенных переменных (т.е. нет PATH, который мог вызвать reboot не быть найденным) прежде, чем выполнить необходимое действие.

Кроме неправильного первого Астерикса в определении времени, я полагаю, что "корневая" строка является неправильной, и файл должен быть похожим:

# file: /etc/cron.d/reboot
0 5 * * * reboot &> /dev/null

иначе это перестало работать, так как это пытается звонить root с аргументом reboot. Если Вы хотите установить crontab корня, необходимо работать crontab (или независимо от того, что Вы используете для установки спецификации заданий), команда как корень.

0
28.01.2020, 05:19
  • 1
    Файлы в/etc/cron.d имеют тот же формат как/etc/crontab, который имеет имя пользователя после спецификации времени. –   17.11.2012, 23:46
  • 2
    @Iain благодарит, я так или иначе не заметил это. –  peterph 20.11.2012, 01:34

Теги

Похожие вопросы