怎样使用yum-cron为CentOS自动更新重要的安全补丁
2017年4月19日 | 分类: 【技术】
参考:https://linux.die.net/man/8/yum-cron
参考:http://www.linuxprobe.com/centos-rhel-update.html
参考:https://solarhell.com/post/2016/02/yum-cron
【安装yum-cron】
1
|
yum install yum- cron -y |
【设置yum-cron】
打开 /etc/yum/yum-cron.conf ,设置以下内容:
1
2
3
|
update_messages = yes # 表明自动更新命令行应该像这样:yum --security upgrade download_updates = yes apply_updates = yes |
默认情况下,cron 任务被配置成了立即下载并安装所有更新,但是我们可以通过在 /etc/sysconfig/yum-cron 配置文件中把下面两个参数改为yes,从而改变这种行为。
1
2
|
CHECK_ONLY= yes # 不要安装,只做检查(有效值: yes|no) DOWNLOAD_ONLY= yes # 要求 CHECK_ONLY=yes(先要检查后才可以知道要下载什么) |
【启用yum-cron】
打开并启用yum-cron 服务:
CentOS/RHEL 7 :
1
2
|
systemctl start yum- cron systemctl enable yum- cron |
On CentOS/RHEL 6 :
1
2
|
service yum- cron start chkconfig --level 35 yum- cron on |
###
安装 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
|
无人值守自动更新服务就设置完成了,以后不用再惦记检查更新这档事啦。
CentOS 7 Yum 自动安装安全更新
做运维的都应该经历过安全漏洞更新的痛苦,Linux 的软件太多,几乎每个软件过段时间就会有漏洞,放着不管不行,每一两天更新一次又很烦,有没有自动更新的东西可以帮帮忙呢?有,Yum 有很成熟的自动更新工具:yum-cron,功能完善,也不复杂。
安装 yum-cron
yum-cron 存在 CentOS 7 的软件库中,安装命令如下:
yum -y install yum-cron
安装之后,启动并设为开启启动:
sudo systemctl enable yum-cron.service
sudo systemctl start yum-cron.service
查看状态
sudo systemctl status yum-cron.service
设置
安装之后,我们需要对其进行配置,默认下,yum-cron 提供三种升级模式:默认、最小和安全,我们这里只介绍安全更新模式。
首先,编辑 yum-cron 的配置文件:
sudo vi /etc/yum/yum-cron.conf
修改下面的配置(#符号行为注释):
# 只升级 安全更新
update_cmd = security
# 显示更新信息
update_messages = yes
# 下载更新
download_updates = yes
# 安装更新
apply_updates = yes
# 提示通过邮件方式发送
emit_via = email
# 邮件配置
email_from = root@hakase-labs
email_to = myemail@gmail.com
email_host = hakase-labs
# 某些包是不需要自动更新的
exclude = mysql* kernel*
修改完之后重启即可:
systemctl start yum-cron
查看日志
如果担心 yum-cron 不知道在背后干了咐,可以查看他的日志:
cd /var/log/
cat cron | grep yum-daily
查看那些包更新了:
cat yum.log | grep Updated