由于我用的系统主要是centos7和debian,于是网上找到这两个教程,作为一个必备的操作,于博客中记录下来。
本文copy自:blog.csdn.net/flying_008 和 lala.im/7717.html
做运维的都应该经历过安全漏洞更新的痛苦,Linux 的软件太多,几乎每个软件过段时间就会有漏洞,放着不管不行,每一两天更新一次又很烦,有没有自动更新的东西可以帮帮忙呢?有,Yum 有很成熟的自动更新工具:yum-cron,功能完善,也不复杂。
Centos的方法:
接下来是CentOS的配置方法,CentOS8自带了yum和dnf两个包管理器,任意选其中一个使用即可。
安装 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 vim /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*
再修改yum-cron-hourly.conf文件:
sudo vim /etc/yum/yum-cron-hourly.conf
修改完之后重启yum-cron即可:
systemctl restart yum-cron
查看日志
如果担心 yum-cron 不知道在背后干了咐,可以查看他的日志:
cd /var/log/
cat cron | grep yum-daily
查看那些包更新了:
cat yum.log | grep Updated
Debian的方法:
下面记录一下apt/yum/dnf包管理器的配置方法。
首先来看apt包管理器的,安装无人值守升级的软件包:
apt -y update
apt -y install unattended-upgrades
设置开机自启:
systemctl enable --now unattended-upgrades
[可选]编辑配置文件:
nano /etc/apt/apt.conf.d/50unattended-upgrades
默认情况下这个配置文件内的内容无需做更改就可以正常工作的。
如果你只打算安装安全类的更新,保证和下面的这个配置一致即可:
Unattended-Upgrade::Origins-Pattern {
...
// "origin=Debian,codename=${distro_codename}-updates";
// "origin=Debian,codename=${distro_codename}-proposed-updates";
"origin=Debian,codename=${distro_codename},label=Debian";
"origin=Debian,codename=${distro_codename},label=Debian-Security";
...
};
如果你有一些特殊的需求可以参考一下下面的这些配置:
// 删除未使用的内核软件包
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// 删除未使用的依赖项
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
// 删除未使用的软件包
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// 启用日志记录
Unattended-Upgrade::SyslogEnable "true";
配置好了之后使用下面的命令生成一个20auto-upgrades的文件:
dpkg-reconfigure -plow unattended-upgrades
你也可以手动创建这个文件:
nano /etc/apt/apt.conf.d/20auto-upgrades
确保里面有如下内容:
// 自动运行apt update
APT::Periodic::Update-Package-Lists "1";
// 自动运行apt upgrade
APT::Periodic::Unattended-Upgrade "1";
最后测试运行:
unattended-upgrade --dry-run
没有问题的话就配置好了。
.