CentOS7+ 无人职守自动更新

自动更新软件包,避免因为漏洞被骇等等

安装 yum-cron

yum -y install yum-cron

配置 yum-cron 自动更新

有两个配置文件:/etc/yum/yum-cron.conf 和 /etc/yum/yum-cron-hourly.conf。这两个配置文件内容差不多,用于配置每天需要执行的内容和每小时需要执行的内容。

在配置文件中,提供的更新策略为:

#  What kind of update to use:
# default                            = yum upgrade
# security                           = yum --security upgrade
# security-severity:Critical         = yum --sec-severity=Critical upgrade
# minimal                            = yum --bugfix update-minimal
# minimal-security                   = yum --security update-minimal
# minimal-security-severity:Critical =  --sec-severity=Critical update-minimal

default 默认的更新,类似yum update
security 安全更新, 类似yum --secruity upgrade
security-severity:Critical 重要的安全更新,类似yum --sec-severity=Critical upgrade
minimal 最小化更新,类似yum --bugfix update-minimal
minimal-security 最小化安全更新,类似yum --security update-minimal
minimal-security-severity:Critical 最小化重要安全更新,类似yum --sec-severity=Critical update-minimal

通过update-cmd指定相应的更新策略。
如: 需要配置只需要更新重要的安全更新,则配置为

update_cmd = security-severity:Critical

# 快捷替换命令则为
sed -i 's|update_cmd = default|update_cmd = security-severity:Critical|g' /etc/yum/yum-cron.conf

apply_updates设置是否提交相应的安全更新,如果设置为no,则只会检测存在更新,但不会直接更新,如要自动更新,需将apply_updates设置为yes

# 将 apply_updates 参数改为 yes
grep ^apply_updates /etc/yum/yum-cron.conf
sed -i 's|apply_updates = no|apply_updates = yes|g' /etc/yum/yum-cron.conf
grep ^apply_updates /etc/yum/yum-cron.conf

不想更新内核的话,添加以下内容:

if [ -z "grep ^exclude /etc/yum/yum-cron.conf" ]; then
    cat >> /etc/yum/yum-cron.conf << EOF
exclude=kernel*
EOF
    else
    sed -i "s@^exclude.*@exclude=kernel*@" /etc/yum/yum-cron.conf
fi
echo 'Info: 禁止自动更新内核设置完毕!'

# 允许更新内核设置
sed -i "s@^exclude.*@@" /etc/yum/yum-cron.conf

启动服务

systemctl enable yum-cron.service && systemctl start yum-cron.service && systemctl status yum-cron.service

无人值守自动更新服务就设置完成了,以后不用再惦记检查更新这档事啦。

扩展阅读1