среда, 19 мая 2010 г.

Автоматическая установка обновлений

По умолчанию это действие производится вручную администратором, однако гораздо лучше если сервер будет устанавливать обновления сам, скажем раз в неделю. Для этих целей будем использовать планировщик cron. Сначала создадим файл скрипта в директории /etc/cron.weekly, что обеспечит ему еженедельное исполнение:

sudo touch /etc/cron.weekly/updates

Откроем его в редакторе Midnight Commander (F4) и внесем следующий текст:

echo "**************" >> /var/log/updates
date >> /var/log/updates
aptitude update >> /var/log/updates
aptitude safe-upgrade -o Aptitude::Delete-Unused=false --assume-yes --target-release `lsb_release -cs`-security >> /var/log/updates
echo "Security updates (if any) installed"

Сохраним (F2) и, выйдя из mc, добавим ему права на исполнение:

sudo chmod +x /etc/cron.weekly/updates

Теперь наш скрипт будет исполняться еженедельно записывая результат своей работы в
/var/log/updates, чтобы избежать излишнего разрастания лог-файла необходимо обеспечить его ротацию. Для этого воспользуемся штатной утилитой logrotate. Создадим файл:

sudo touch /etc/logrotate.d/updates

И внесем в него следующий текст:

/var/log/updates {
rotate 2
weekly
size 250k
compress
notifempty
}

При указанных настройках файл будет заменяться новым каждую неделю (weekly) или по превышении им размера 250 кБ (size 250k), при этом будут сохранятся два предыдущих файла (rotate 2) в сжатом виде (compress), при пустом логе ротация не происходит (notifempty).

При необходимости можно легко изменить период установки обновлений. Достаточно переместить скрипт updates в соответствующую директорию. Например его перемещение из /etc/cron.weekly в /etc/cron.daily позволит устанавливать обновления ежедневно.

Комментариев нет: