Похоже, что Windows захватил загрузочный сектор. Linux может загрузить Windows, но Windows не может загрузить ничто больше. Необходимо переключить загрузочный сектор назад на Linux. Загрузчик Linux (часть системы, которая выполняется сначала после кода в постоянной памяти и загружает фактическую операционную систему), называют Личинкой. Можно восстановить Личинку из носителя установки (CD, USB, …), что Вы раньше устанавливали систему. Шаги описаны в руководстве: Fedora 15 (Личинка 1), Fedora 16 (Личинка 2). Короче говоря загрузите носитель установки в спасательном режиме (linux rescue
), затем выполните команды
chroot /mnt/sysimage
/sbin/grub-install /dev/sda
Поскольку другие комментаторы сказали, если uptime
отчеты 7 дней времени работы, система не перезагрузила в этом в то время как.
Помимо @Dennis' корректный комментарий, удалите канал к /dev/null
временно, затем проверьте root
почта и /var/log/syslog
.
Если reboot
команда не находится на выполняющейся оболочке PATH
, крон не мог бы просто найти его.
Некоторые системы не имеют reboot
команда, в этом случае необходимо было бы использовать shutdown -r now
.
&>
синтаксис для перенаправления и stderr и работы stdout в ударе, но это, вероятно, не работает в /bin/sh
, который используется для выполнения cron
команды.
Попробуйте это:
0 5 * * * root reboot > /dev/null 2>&1
Это также фиксирует ошибку синхронизации, на которую указывает комментарий Dennis Kaarsemaker.
(Я не комментирую, является ли это хорошей идеей во-первых.)
>&
и &>
обе работы в ударе; только >&
работы в csh и tcsh. Начиная с использования вопроса &>
, и csh и tcsh не релевантны, я удалил ссылку на них.
– Keith Thompson
02.12.2013, 11:56
>/dev/null
стандартный вывод отбрасываний. 2>&1
направляет stderr к тому же месту, таким образом, весь вывод отбрасывается.
– Keith Thompson
24.10.2016, 03:32
Я думаю лучший ответ, который я могу дать Вам, должен получить системного администратора, который может узнать что случилось с полем и почему перезагрузки занимают много времени. Все другие возможные решения Вашей "проблемы" (такие как проверка $PATH
, использование полного пути к reboot
или использование shutdown -r
) просто обходные решения, которые заставят Ваш cronjob работать, но сохранить Вас слепыми относительно того, что является на самом деле неправильным.
Проверьте страницу справочника на cron
Вы установили. Это может сделать различные вещи, в зависимости от реализации - как установка только определенных переменных (т.е. нет PATH
, который мог вызвать reboot
не быть найденным) прежде, чем выполнить необходимое действие.
Кроме неправильного первого Астерикса в определении времени, я полагаю, что "корневая" строка является неправильной, и файл должен быть похожим:
# file: /etc/cron.d/reboot
0 5 * * * reboot &> /dev/null
иначе это перестало работать, так как это пытается звонить root
с аргументом reboot
. Если Вы хотите установить crontab корня, необходимо работать crontab
(или независимо от того, что Вы используете для установки спецификации заданий), команда как корень.