实验了一下,比如直接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";

标签: linux

添加新评论