CentOS7에서 자동 업데이트를 활성화하는 방법은 무엇입니까?

CentOS7에서 자동 업데이트를 활성화하는 방법은 무엇입니까?

소개하다

목적은 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

이 문제를 진단하는 데 도움이 될 수 있는 한 가지는 루트 계정의 이메일을 확인하는 것입니다. Anacron이 실행하는 모든 프로세스는 stdout 및 stderr을 캡처하여 시스템 루트 계정으로 이메일을 보냅니다. 또한 yum-cron활성 이메일을 자체적으로 보내야 합니다. 읽은 이메일 주소로 루트의 메일함을 전달하는 것이 현명합니다.

set -x시작 부분에 추가하면 실행 중인 모든 명령이 에코되어 Anacron이 실행 중인지, 그렇다면 스크립트가 올바르게 실행 되었는지 확인하는 /etc/cron.daily/0yum-cron.cron데 도움이 될 수 있습니다.sh0yum-cron.cron

관련 정보