紹介する
目的はCentOS 7システムを自動的に更新することです。
試みる
に基づいてこれこのマニュアルでは、次の手順が実行されます。
yum-cron
インストール済みyum-cron.conf
次のように変更します。user@host ~ $ cat /etc/yum/yum-cron.conf [commands] update_cmd = default update_messages = yes download_updates = yes apply_updates = yes
例
yum-cron
:選択済み(
systemctl status yum-cron
)user@host ~ $ systemctl status yum-cron ● yum-cron.service - Run automatic yum updates as a cron job Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled; vendor preset: disabled) Active: active (exited) since
有効(
systemctl enable yum-cron
)- 開始(
systemctl start yum-cron
)
数日後、yum.logを確認しました。
user@host$ sudo cat /var/log/yum.log [sudo] password for user: Feb 23 18:49:51 Installed: libreoffice5.2-freedesktop-menus-5.2.5-1.noarch Mar 02 15:42:09 Installed: qpid-tools-1.35.0-1.el7.noarch Mar 27 08:41:33 Installed: yum-cron-3.4.3-150.el7.centos.noarch
しかし、自動的にインストールされることはありません。yum upgrade
これは、複数のパッケージをインストールできることを示すときに確認されました。
user@host$ sudo yum upgrade
Transaction Summary
===================================================================================================================================================================================================================
Install 3 Packages (+2 Dependent packages)
Upgrade 155 Packages
Remove 2 Packages
Total size: 488 M
Total download size: 53 M
Is this ok [y/d/N]:
議論する
Q:この問題はオペレーティングシステムのバージョンに関連している可能性がありますか?
user@host ~ $ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)
A:この問題がCentOSに関連しているという証拠は見つかりませんでした
7.3.1611
。
答え1
デフォルトでは、多数のパラメータがありませんyum-cron.conf
。これらのパラメータの一部が欠落して問題が発生するかどうか疑問に思います。
これは私の仕事の設定の一つであり、修正されyum-cron.conf
ました。
# grep -v -e '^#' -e '^$' yum-cron.conf
[commands]
update_cmd = default
update_messages = yes
download_updates = yes
apply_updates = yes
random_sleep = 10800
[emitters]
system_name = None
emit_via = stdio
ouput_width = 80
[email]
email_from = root@localhost
email_to = root
email_host = localhost
[groups]
group_list = None
group_package_types = mandatory, default
[base]
debuglevel = -2
mdpolicy = group:main
また、以下/etc/cron.daily/0yum-cron.cron
があることを確認してください。
#!/bin/bash
# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
if [[ ! -f /var/lock/subsys/yum-cron ]]; then
exit 0
fi
# Action!
exec /usr/sbin/yum-cron
最後に、SELinuxラベルとデフォルトのUnix権限と所有権が正しいことを確認してください。次の値は有効です。
# ls -Z /etc/cron.daily/0yum-daily.cron /etc/yum/yum-cron.conf
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /etc/cron.daily/0yum-daily.cron
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0 /etc/yum/yum-cron.conf
答え2
この問題を診断するのに役立つ1つは、rootアカウントの電子メールを確認することです。 Anacronが実行するすべてのプロセスはstdoutとstderrをキャプチャし、システムルートアカウントに電子メールを送信します。また、yum-cron
アクティブな電子メールを独自に送信する必要があります。読んだメールアドレスにルートのメールボックスを転送するのが賢明です。
set -x
先頭に追加すると、実行中のすべてのコマンドがエコーされ、Anacronが実行されているかどうか、そうであればスクリプトが正しく実行されていることを確認する/etc/cron.daily/0yum-cron.cron
のに役立ちます。sh
0yum-cron.cron