CentOS: yum-cron — автоматическое обновление системы и пакетов

Автор: | 08/12/2014
 

centos-logo-new-4Для CentOS имеется несколько утилит для работы с обновлениями:

yum-updatesd — служит только для уведомления о доступных обновлениях через почту, syslog или dbus;
yum update — запускаемая вручную или через cron;
yum-cron — утилита с расширенными возможностями для запуска yum через cron.

Мы будем использовать утилиту yum-cron.

Устанавливаем:

# yum -y install yum-cron
...
Installed:
yum-cron.noarch 0:3.2.29-43.el6.centos

Dependency Installed:
yum-plugin-downloadonly.noarch 0:1.1.30-17.el6_5

Complete!

Проверяем — не установлен ли в системе yum-updatesd:

# which yum-updatesd
/usr/bin/which: no yum-updatesd in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/setevoy/scripts/:/home/setevoy/scripts/money/:/root/bin)
# service yum-updatesd status
yum-updatesd: unrecognized service

Ищем связанные файлы:

# rpm -ql yum-cron
/etc/cron.daily/0yum.cron
/etc/rc.d/init.d/yum-cron
/etc/sysconfig/yum-cron
/etc/yum/yum-daily.yum
/etc/yum/yum-weekly.yum
/usr/share/doc/yum-cron-3.2.29
/usr/share/doc/yum-cron-3.2.29/COPYING
/usr/share/man/man8/yum-cron.8.gz

Настройки yum-cron хранятся в файле /etc/sysconfig/yum-cron.

По-умолчанию yum-cron будет проверять и устанавливать обновления раз в сутки и устанавливать их.

Стоит обратить внимание на такие опции:

YUM_PARAMETER — дополнительные опции для yum, например:

YUM_PARAMETER="--exclude='kernel*' --exclude='grub*'" # исключить из обновлений ядро и grub;

CHECK_ONLY — выполнять только проверку доступных обновлений, или проверять и устанавливать их, по умолчанию — проверять и устанавливать, измените на yes что бы выполять только проверку и высылать уведомление:

# Don't install, just check (valid: yes|no)
CHECK_ONLY=yes

CHECK_FIRST — проверять доступность репозитория перед обновлением;

# Check to see if you can reach the repos before updating (valid: yes|no)
CHECK_FIRST=yes

DOWNLOAD_ONLY — загружать доступные обновления, но не устанавливать их (если включена CHECK_ONLY=yes);

# Don't install, just check and download (valid: yes|no)
# Implies CHECK_ONLY=yes (gotta check first to see what to download)
DOWNLOAD_ONLY=no

MAILTO — отправлять уведомления на указанный ящик, например:

# by default MAILTO is unset, so crond mails the output by itself
# example: MAILTO=root
MAILTO="root@domain.org.ua"

Запускаем сервис:

# chkconfig yum-cron on
# service yum-cron start
Enabling nightly yum update: [ OK ]

Теперь раз в сутки cron.daily будет выполнять скрипт /etc/cron.daily/0yum.cron.

В логе cron должны появится записи вида:

# grep "yum" /var/log/cron
Aug 11 03:08:02 venti run-parts(/etc/cron.daily)[4516]: starting 0yum.cron
Aug 11 03:49:30 venti run-parts(/etc/cron.daily)[4761]: finished 0yum.cron

И почтовое уведомление:

# grep -R "System update" /var/vmail/domain.org.ua/root@domain.org.ua/
Binary file /var/vmail/domain.org.ua/root@domain.org.ua/dovecot.index.cache matches
/var/vmail/domain.org.ua/root@domain.org.ua/cur/1407807228.M239060P12087.venti.domain.org.ua,S=867,W=888:2,Sa:Subject: System update: venti.domain.org.ua