Автоматическое обновление CentOS ака yum-cron

archive view archive save

Автоматическое обновление CentOS ака yum-cron Уважающим себя одминам не нужно рассказывать о том, как важно своевременно обновлять ОС, в т.ч. CentOS. Желательно автоматически устанавливать все доступные обновления в CentOS или же хотя бы автоматически получать своевременные уведомления о наличии доступных обновлений.

Автоматическое обновление CentOS возможно при помощи команды yum update -y, запускаемой по расписанию (cron), но можно воспользоваться и дополнительным пакетом типа yum-cron, который можно использовать более гибко.

Установка yum-cron в CentOS

Установка yum-cron для автоматического обновления CentOS, как и установка других пакетов в CentOS, до ужаса проста yum install yum-cron

yum install yum-cron
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * atomic: www7.atomicorp.com
 * base: mirror.karneval.cz
 * epel: mirror.awanti.com
 * extras: mirror.karneval.cz
 * rpmforge: mirror.awanti.com
 * updates: mirror.karneval.cz
408 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-cron.noarch 0:3.2.29-30.el6.centos will be installed
--> Processing Dependency: yum-plugin-downloadonly for package: yum-cron-3.2.29-
30.el6.centos.noarch
--> Running transaction check
---> Package yum-plugin-downloadonly.noarch 0:1.1.30-14.el6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
================================================================================
 Package                     Arch       Version                  Repository
                                                                           Size
================================================================================
Installing:
 yum-cron                    noarch     3.2.29-30.el6.centos     base      35 k
Installing for dependencies:
 yum-plugin-downloadonly     noarch     1.1.30-14.el6            base      20 k
 
Transaction Summary
================================================================================
Install       2 Package(s)
 
Total download size: 55 k
Installed size: 47 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): yum-cron-3.2.29-30.el6.centos.noarch.rpm          |  35 kB     00:00
(2/2): yum-plugin-downloadonly-1.1.30-14.el6.noarch.rpm  |  20 kB     00:00
--------------------------------------------------------------------------------
Total                                            56 kB/s |  55 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : yum-plugin-downloadonly-1.1.30-14.el6.noarch                 1/2
  Installing : yum-cron-3.2.29-30.el6.centos.noarch                         2/2
  Verifying  : yum-plugin-downloadonly-1.1.30-14.el6.noarch                 1/2
  Verifying  : yum-cron-3.2.29-30.el6.centos.noarch                         2/2
 
Installed:
  yum-cron.noarch 0:3.2.29-30.el6.centos
 
Dependency Installed:
  yum-plugin-downloadonly.noarch 0:1.1.30-14.el6
 
Complete!

Конфигурация yum-cron

Увы man yum-cron не содержит никакой справки (No manual entry for yum-cron) и конфигурационный файл yum-cron пришлось искать врукопашную:

updatedb
locate yum-cron
/etc/rc.d/init.d/yum-cron
/etc/rc.d/rc0.d/K01yum-cron
/etc/rc.d/rc1.d/K01yum-cron
/etc/rc.d/rc2.d/S50yum-cron
/etc/rc.d/rc3.d/S50yum-cron
/etc/rc.d/rc4.d/S50yum-cron
/etc/rc.d/rc5.d/S50yum-cron
/etc/rc.d/rc6.d/K01yum-cron
/etc/sysconfig/yum-cron
/usr/share/doc/yum-cron-3.2.29
/usr/share/doc/yum-cron-3.2.29/COPYING
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/checksum_data
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/checksum_type
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/command_line
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/from_repo
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/from_repo_revision
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/from_repo_timestamp
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/installed_by
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/reason
/var/lib/yum/yumdb/y/aee00bf28191d4dfb7c38c68a5ab37b6653461fc-yum-cron-3.2.29-30 \
    .el6.centos-noarch/releasever
/var/lock/subsys/yum-cron

Вот он наш файл конфигурации /etc/sysconfig/yum-cron:

vi /etc/sysconfig/yum-cron
 
# Don't install, just check (valid: yes|no)
CHECK_ONLY=yes
 
# by default MAILTO is unset, so crond mails the output by itself
# example: MAILTO=root
MAILTO=mymail@gmail.com

Потому как мы привыкшие устанавливать все обновления вручную, то в примере выше мы установили соответствующую настройку в CHECK_ONLY=yes, по умолчанию CHECK_ONLY=no обновления будут устанавливаться автоматически.

Запуск/автозапуск yum-cron

Перед запуском нужно проверить не установлен ли в системе service yum-updatesd status и если результатом будет started|stoped, то или удаляем его yum remove yum-updatesd или останавливаем service yum-updatesd stop и выключаем chkconfig yum-updatesd off, а уже потом добавляем yum-cron в автозапуск и запускаем соответственно:

chkconfig yum-cron on
service yum-cron start

Автоматическое обновление CentOS ака yum-cron будет выполнятся ежедневно /etc/cron.daily/0yum.cron, в полночь.

Проверить выполнялся ли и когда именно выполнялся /etc/cron.daily/0yum.cron можно в лог файле grep yum /var/log/cron


Комментарии в блоге
Новое на форуме