UR4QTP: записная книжка 

На главную

МикроHowTo

Автоматическое обновление системы

Ситуация с обновлениями в Linux прямо противоположна оной в Windows. Обновлять систему однозначно нужно. Обновления, исправляющие обнаруженные ошибки и уязвимости, выходят достаточно часто. Даже обновления ядра случаются по нескольку раз в неделю. Как часто обновляться? До недавнего времени я это делал тогда, когда об этом вспоминал. С появлением дома сервера, включенного круглосуточно, задумался об автоматизации процесса. Просто стало надоедать вручную обновлять четыре домашних компа. На каждый зайди, стань суперпользователем, вводи соответствующие команды… Почитал литературку, порылся в интернете. Основная масса советов рассчитаны на сложные системы с выборочным обновлением то по безопасности, то по типам пакетов (stable, unstable…) с помощью специальных пакетов типа apt-cron и т.п. Поскольку я до этого ещё не дорос, то сделал самое простое: в точности то, что я раньше делал вручную, поручил демону cron. Для этого нужно добавить в файл /etc/crontab следующие строки:

10 01 * * * root apt-get update
20 02 * * * root apt-get -y dist-upgrade

Файл /etc/crontab очень хорошо комментирован, разобраться в нём не составило труда даже для меня :-). Поля этих строк свёл в табличку для удобства пользования:

№ поля в строке Название поля в файле Допустимые значения Что обозначает Пример
1 m
(minute)
0…59 Минуты 10
2 h
(hour)
0…23 Часы 01
3 dom
(day of month)
1…31 День месяца *
(любой)
4 mon
(month)
1…12
(Jan…Dec)
Месяц *
5 dow
(day of week)
0…7
(0 и 7 – Sun)
День недели *
6 user   Имя пользователя, от которого будет запущена программа root
7 command   Запускаемая программа apt-get update

Таким образом, в моём случае каждые сутки в 01:10 запускается apt-get update, а в 02:20 – apt-get -y dist-upgrade. -y обозначает, что на возникающие простые вопросы нужно автоматически ответить yes. Возможно, более правильным было бы задать эти команды одной строкой

apt-get update && apt-get -y dist-upgrade

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

При наличии нескольких компьютеров обновления на них лучше разнести во времени, если у вас не супертолстый канал в интернет. Серверы лучше обновлять ночью, вернее, в то время, когда трафик в интернет имеет минимум. Ну а настольные компы – в то время, когда они обычно включены. Я поставил с 19:00 по 21:00.

Файл /etc/crontab также очень хорошо описан в манах:

man 5 crontab

Там также можно прочитать о других возможных вариантах указания времени выполнения программ и посмотреть на примеры.

ВАЖНО! В конце файла crontab должна быть пустая строка, иначе правило, находящееся в последней строке, не будет выполняться.

О результатах своей работы cron докладывает по электронной почте. В этом случае при входе на удалённый компьютер вы получите сообщение: You have mail. Вводите команду mail и читайте, что же он там наделал… :-)

2010-09-26…2017-10-01


МикроHowTo

На главную

 UR4QTP: записная книжка