![如何将我的系统设置为无需用户交互即可自动更新?](https://linux22.com/image/810184/%E5%A6%82%E4%BD%95%E5%B0%86%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%AE%BE%E7%BD%AE%E4%B8%BA%E6%97%A0%E9%9C%80%E7%94%A8%E6%88%B7%E4%BA%A4%E4%BA%92%E5%8D%B3%E5%8F%AF%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%EF%BC%9F.png)
我如何设置我的 Ubuntu,使其不仅定期(自动)更新安全更新(我可以在安装 ubuntu 时进行设置),而且在后台自动更新所有软件包,无需用户交互?
额外的问题:如果我可以配置我的 Ubuntu 机器检查更新的频率,那么我应该设置什么?每小时检查一次?或者是否有任何内置的随机方式,我的意思是 Ubuntu 等待随机时间,然后检查更新?(不要在每个整点给存储库服务器带来很大的流量,例如:20h;21h;22h;等等)
答案1
安装该unattended-upgrades
软件包,并编辑其配置文件以安装所有软件包,而不仅仅是安全更新:
编辑文件/etc/apt/apt.conf.d/50unattended-upgrades
:
// Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
// "${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
并从您想要自动执行的部分中删除//
,然后保存文件。
接下来您需要设置自动更新功能/etc/apt/apt.conf.d/10periodic
:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
更新间隔是每天,这差不多是正确的,否则您可能会过于频繁地点击镜像。
以下是相关文档:
答案2
使用 Cron 和 Apt-Get 自动进行每日软件包更新
警告:与任何系统更改一样,可能会产生新的或其他问题。请务必备份您的数据和配置!使用此文档的风险由您自行承担。
创建每日 Cron 作业文件
首先,您需要创建 cron 作业文件。您可以使用简单的文本编辑器创建文件并将其保存在您的主目录中。在文本编辑器中,键入以下行:
#!/bin/bash
apt-get update
apt-get upgrade -y
apt-get autoclean
现在单击“保存”并将文件命名为“autoupdt”。
将 Cron Job 文件移动到 Cron.Daily
现在您已经创建了 cron 作业文件,需要将其移动到每日 cron 目录中,以便它每天自动运行。为此,我们首先需要打开命令行终端 ( CTRL++ )。ALTT
我们需要将文件移动到正确的目录。在命令行提示符下键入以下命令来移动文件:
sudo mv /where/ever/autoupdt /etc/cron.daily
使 Cron Job 文件可执行
现在文件已创建并准备好由 cron 每天运行,我们仍然需要使该文件可执行,以便 cron 能够运行它。
sudo chmod 755 /etc/cron.daily/autoupdt
跟进
关于cron自定义配置的更多细节请参考:
man cron
完成的