Я новичок в Ubuntu и Linux в целом. После некоторого исследования я нашел отличную информацию о crontab. Я попытался "кодировать" сам, и вот что я придумал:
00 02 * * 1,3,5 sudo shutdown -r
@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
Готов поспорить, вы знаете, чего я пытаюсь достичь, но поскольку я не могу попробовать, мне любопытно, будут ли эти команды работать так. Крайне важно, чтобы и сеть, и веб-сайт были в рабочем состоянии после перезагрузки. Кроме того, жизнеспособна ли часть 1,3,5
? Будет ли это перезагружать машину в Пн, Ср и Пт?
И было бы хорошо / разумно запланировать перезапуск после обновления / обновления?
Спасибо за помощь.
Я согласен со всем в других ответах, но позвольте мне добавить это. ..
Запускать apt-get
без присмотра опасно. Некоторые приложения задают вопросы во время обновлений и обновлений, а некоторым другим требуется ввод с клавиатуры, если вы поместите их в фоновый режим, и они будут зависать, даже если ввод с клавиатуры не требуется.
Попытка запустить apt-get в фоновом режиме подобным образом - хороший способ получить систему, в которой обновления не работают, и их нужно настраивать и возобновлять вручную.
Процесс автоматического обновления предполагает автоматическую установку критических обновлений без вмешательства пользователя.
Если ваша машина дает сбой, вам нужно выяснить причину. Возможно, запустите диагностику оборудования в одночасье. Проверьте журналы во время сбоя. Возможно, проверьте, не хватает ли памяти для чего-то, что приводит к зависанию машины. И т.д. ...
Кроме того, вам нужно время от времени запускать apt autoremove
, иначе обновления ядра будут собираться, пока ваш диск не заполнится.
Нет.
Но если вы действительно хотите это сделать, я бы добавил следующие 3 ...
sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
Это не нужно. Я бы устроил это с "сервисом". Таким образом, вы можете создать цепочку команд, ожидающих друг друга. «спать 60» и «спать 15» ... что, если это должны быть 61 и 16? Сервисы исправят эту проблему за вас.
Кроме того, жизнеспособна ли часть 1,3,5? Будет ли это перезагружать машину в понедельник, пятницу и пятницу?
Как сказал Дэн в комментарии: crontab.guru с вашими вставленными правилами crontab состояния «В 02:00 понедельника, среды и пятницы. "
Если нет причин для перезагрузки, я бы не выполнял ее.У меня есть серверы, работающие более 5 лет, и каждый раз я устраняю проблемы с памятью и тому подобное: +
Общее замечание: Вместо использования sudo
в user
crontab, подумайте о том, чтобы поместить эти команды в root
crontab, чтобы они могли выполняться без sudo.
Что касается ваших 3 строк кронтаба:
@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y
Вполне возможно выполнить apt-get update
и apt-get upgrade -y
таким образом. (Не предназначено для производственного сервера, и при условии, что вы понимаете последствия неуправляемых обновлений.)
00 02 * * * 1,3,5 sudo shutdown -r
Я бы не считал необходимым перезагружаться 3 раза в неделю. Я сам использую этот очень простой сценарий перезагрузки: (называется auto-reboot.sh
)
#!/bin/bash
[[ -f /var/run/reboot-required.pkgs ]] && reboot
Я запускаю этот сценарий с помощью cron еженедельно, после обновления и очистки. Он перезагружается, только если машина нуждается в перезагрузке (если /var/run/reboot-required.pkgs
существует). (Опять же, это не предназначено для производственного сервера.)
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
Я не понимаю, зачем вам нужно запускать netplan apply
при перезагрузке.
Кроме того, более надежным способом запуска службы, которая зависит от другой службы или условия (например, сети), является создание systemd .service
для выполнения этой работы. Для этого существует несколько руководств (1, 2), которые я бы рекомендовал вам посмотреть.