unattended-upgrades:实现系统自动更新
实验了一下,比如直接shell脚本配合crontab定时任务来的痛快。shell脚本内容如下(假设文件名为update.sh,放在/home目录下),需要chmod +x update.sh
添加执行权:
#!/usr/bin/env bash
apt update -y
apt upgrade -y
apt autoremove -y
在crontab中的内容如下,必须是决定路径:
0 3 * * * /bin/bash /home/update.sh
对于Debian及其衍生系统,日常使用apt update/upgrade手动更新,实际上还有个unattended-upgrades
用于系统的自动更新。配合上稳定的业务脚本,可以实现一次配置终生不管。
apt install unattended-upgrades # 执行自动更新
apt install apt-config-auto-update # 如有必要,实现系统自动重启
系统会安装一系列的依赖,例如python、xz-utils和distro-info-data等。待安装完成后,在/etc/apt/apt.conf.d/
目录下有以下几个重要的配置文件:
00trustcdrom
10periodic
50unattended-upgrades
如果没有发现10periodic
这个文件,可以打开50unattended-upgrades
并保存(无需做任何修改),系统会自动生成10periodic
的。这个文件实际上是控制更新频率的,默认每天更新一次。
APT::Periodic::Update-Package-Lists "1"; # 每1天检查一次更新
APT::Periodic::Download-Upgradeable-Packages "1"; # 每1天下载需要更新的安装包
APT::Periodic::AutocleanInterval "0"; # 从不执行自动清理
理论上不需要修改任何配置文件,就可以实现系统的自动更新。当然,如果有需要,可以修改50unattended-upgrades
中的详细配置文件。唯一值得一提的就是00trustcdrom
是默认启动光盘源的,对于绝大多数的电脑来说没有这个更新方式,可以把里面的true改成false,如下:
APT::Authentication::TrustCDROM "false";