Для 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="[email protected]"
Запускаем сервис:
# 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/[email protected]/ Binary file /var/vmail/domain.org.ua/[email protected]/dovecot.index.cache matches /var/vmail/domain.org.ua/[email protected]/cur/1407807228.M239060P12087.venti.domain.org.ua,S=867,W=888:2,Sa:Subject: System update: venti.domain.org.ua