Рейтинг:4

Кронтаб первый раз. Это жизнеспособно?

флаг kr

Я попытался сам «кодировать», и вот что у меня получилось:

00 02 * * 1,3,5 sudo выключение -r
@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start веб-сайт

Крайне важно, чтобы и сеть, и веб-сайт были запущены и работали после перезагрузки. Кроме того, является 1,3,5 часть жизнеспособна? Будет ли это перезапускать машину в Пн, Ср и Пт? И было бы хорошо/умно запланировать перезагрузку после обновления/обновления?

флаг jp
Dan
Я не имею никакого отношения к веб-сайту, но я часто использую этот сайт для проверки своих «предпочтений» crontab: https://crontab.guru/
флаг cn
@dan одна из моих многочисленных закладок ;-)
флаг in
Что именно ты пытаешься сделать? Я знаю, что делает каждая строка, но какова ваша цель? Почему omd не является сервисом? Какой смысл перезапускать систему? Автоматические обновления надежно обновляют вашу систему для обновлений безопасности (или других обновлений, если вы настроили их).
Andrej Podzimek avatar
флаг cn
Я настоятельно рекомендую вместо этого использовать таймеры `systemd`. Изучение crontab в 2021 году имеет ограниченную пользу, если только это не проект музея компьютерной истории.
Рейтинг:8
флаг cn

Неа.

  • Вы не используете sudo в cron. используйте root crontab, если вам нужен доступ к командам, требующим root
  • Всегда используйте абсолютные пути в cron.
  • И вам не следует обновлять --производственный-- сервер без присмотра; вы делаете это вручную. Круто, если это рабочий стол или тестовый/промежуточный сервер. Мой личный опыт использования серверов CLOUD: все, что пойдет не так во время перезагрузки, фатально.

Но если вы действительно хотите это сделать, я бы добавил следующие 3...

  • добавить ведение журнала к командам "apt"
  • добавьте метод для отправки вам по почте того, что было напечатано во время выполнения команд apt.
  • перед «подходящим» вам действительно следует сделать полную резервную копию системы, которая хранится за пределами сервера. Когда обновление/обновление идет не так, как надо, и это влияет на вашу систему (в 99 из 100 случаев это не так, но вы не хотите, чтобы это произошло ;)) возвращение вашей системы в последнее рабочее состояние важнее, чем решение проблемы.

sleep 60 && sudo netplan применить && sleep 15 && sudo omd start веб-сайт

Это не должно быть необходимо. Я бы устроил это с помощью "сервиса". Таким образом, вы можете создать цепочку команд, которые ждут друг друга. "спать 60" и "спать 15"... что, если нужно было 61 и 16? Услуги решат эту проблему для вас.

Кроме того, жизнеспособна ли часть 1,3,5? Будет ли это перезапускать машину в Пн, Ср и Пт?

Как сказал Дэн в комментарии: crontab.гуру со вставленными правилами crontab указано «В 02:00 в понедельник, среду и пятницу».

Если нет причин для перезагрузки, я бы не стал ее выполнять. У меня есть серверы, работающие более 5 лет, и каждый раз я очищаю проблемы с памятью и тому подобное :+

raj avatar
флаг cn
raj
Что касается рассылки, то достаточно, чтобы на сервере был установлен MTA (что должно быть нормальным для сервера - по крайней мере, в Debian, не знаю как в Ubuntu Server, т.к. я пользовался только десктопными версиями Ubuntu). Затем cron автоматически отправит все выходные данные пользователю root.
флаг cn
Это, вероятно, то же самое в Ubuntu. Я знаю, что получаю почту с наших серверов, но мне никогда не приходилось вникать в то, как это сделать :D
Artur Meinild avatar
флаг vn
Вы должны установить и настроить MTA (по умолчанию `postfix`) на сервере, и внутренняя рассылка работает "из коробки". Однако, если он должен отправляться на внешний почтовый адрес, его необходимо настроить с помощью DKIM и т. д., чтобы предотвратить его пометку как ненадежный и/или спам.
SomeDude avatar
флаг kr
Для абсолютных команд: есть ли простой способ найти каталоги, в которых находятся команды? Я попробовал справочную страницу и просмотрел bin & sbin, но я не совсем уверен, могу ли я доверять своим собственным исследованиям... Например, apt, который я нашел в /bin... Спасибо за идею с сервисами, посмотрю.
Artur Meinild avatar
флаг vn
Используйте команду `what`, то есть `what apt`.
terdon avatar
флаг cn
На самом деле, используйте `type`, а не `what`, поскольку `type` также разрешает псевдонимы, функции и т. д. См. [Почему бы не использовать «what»? Что тогда использовать?] (https://unix.stackexchange.com/q/85249)
флаг in
«И вам не следует обновлять сервер --production-- без присмотра». Обновления безопасности обычно не являются проблемой, что является значением по умолчанию для автоматических обновлений.
Рейтинг:8
флаг vn

Общий комментарий: вместо использования судо в пользователь crontab, подумайте о том, чтобы поместить эти команды в корень crontab, чтобы они могли работать без sudo.

Что касается ваших 3 строк crontab:

@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y

Это вполне возможно сделать apt-получить обновление и apt-получить обновление -y этим способом. (Не предназначен для рабочего сервера и при условии, что вы понимаете последствия автоматических обновлений.)

00 02 * * 1,3,5 sudo выключение -r

Я не думаю, что необходимо перезагружать 3 раза в неделю. Я сам использую этот очень простой скрипт перезагрузки: (называемый auto-reboot.sh)

#!/бин/баш

[[ -f /var/run/reboot-required.pkgs ]] && перезагрузка

Поэтому я запускаю этот скрипт с cron еженедельно после моего скрипта обновления и очистки. Он перезагружается только в том случае, если машину необходимо перезагрузить (если /var/run/reboot-required.pkgs существовать). (Опять же, это не предназначено для рабочего сервера.)

@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start веб-сайт

Я не понимаю, почему вам нужно бежать применить сетевой план при перезагрузке.

Кроме того, более надежный способ запустить службу, которая зависит от другой службы или условия (например, сети), — это создать файл systemd. .оказание услуг сделать работу. Для этого есть несколько руководств (1, 2), которые я бы рекомендовал вам посмотреть.

флаг cn
И на случай, если кто-то захочет знать: мы написали эти 2 независимо друг от друга и действительно во многом написали одно и то же. Заставил улыбнуться :-) Я не могу быть единственным голосующим :(
Artur Meinild avatar
флаг vn
Да, то же самое для меня - в целом то же сообщение, но с некоторыми другими тонкими нюансами. ;-)
SomeDude avatar
флаг kr
Ого хорошо спасибо большое... Проблема с машиной в том, что она продолжает зависать примерно через 5 дней безотказной работы. А у меня уже 3 раза было, что сбивались настройки сети после перезагрузки и приходилось заново применять нетплан. Поэтому я подумал, что могу просто периодически перезагружать ПК, поскольку аппаратное обеспечение, скорее всего, не способно работать круглосуточно и без выходных.
terdon avatar
флаг cn
@SomeDude, похоже, у тебя где-то серьезная проблема. Мой _ноутбук_ может работать 24 часа в сутки 7 дней в неделю, я не могу представить, что ваше оборудование не может. Проверьте использование ОЗУ и подкачки или задайте новый вопрос, и мы поможем вам разобраться.
SomeDude avatar
флаг kr
@terdon Я использовал списанный [HP Prodesk 600 G3 mini] (https://support.hp.com/us-en/document/c05364047) с i5-7500T и 8 ГБ DDR4, которому уже 4 года... Я мог бы увеличить его и создать виртуальную машину на наших живых серверах, но для целей тестирования я использовал этот компьютер. Для ознакомления с программным обеспечением и еще много чего. Есть ли простой способ проверить, является ли это аппаратной проблемой?
Artur Meinild avatar
флаг vn
[Здесь] (https://askubuntu.com/questions/1038701/how-do-i-check-system-health) — ветка с некоторой информацией о тестировании оборудования. Кроме того, попробуйте найти тег [hardware-test] (https://askubuntu.com/questions/tagged/hardware-test).
Рейтинг:2
флаг in

Я согласен со всем в других ответах, но позвольте мне добавить это...

опасно бегать способный получить без присмотра. Несколько приложений задают вопросы во время обновлений и установки обновлений, а некоторые другие требуют ввода с клавиатуры, если вы поместите их в фоновый режим, и они будут зависать, даже если ввод с клавиатуры не требуется.

Попытка запустить apt-get в фоновом режиме, как это, — хороший способ в конечном итоге получить систему, в которой обновления не работают, и их нужно настраивать и возобновлять вручную.

Предполагается, что процесс автоматического обновления автоматически устанавливает критические обновления без вмешательства пользователя.

Если ваша машина дает сбой, вам нужно выяснить, почему. Возможно, запустите аппаратную диагностику на ночь. Проверьте журналы во время сбоя. Возможно, проверьте, не исчерпало ли что-то память и вызвало зависание машины. И т.д...

Кроме того, вам нужно запустить автоматическое удаление время от времени или обновления ядра будут собираться до тех пор, пока ваш диск не заполнится.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.