如何在 Ubuntu 18.04 中使用 crontab 来 apt update 和 apt upgrade(以 sudo 用户身份)?

如何在 Ubuntu 18.04 中使用 crontab 来 apt update 和 apt upgrade(以 sudo 用户身份)?

我想每天跑一次apt updateapt upgrade

sudo crontab -e并把:00 13 * * * apt update && apt upgrade我的印象是这些命令将在每天 13:00 运行(作为 sudo 用户)。

然而,尝试过之后,当我运行时,sudo apt list --upgradable我得到:

glib-networking/bionic-updates,bionic-security 2.56.0-1ubuntu0.1 amd64 [upgradable from: 2.56.0-1]
glib-networking-common/bionic-updates,bionic-updates,bionic-security,bionic-security 2.56.0-1ubuntu0.1 all [upgradable from: 2.56.0-1]
glib-networking-services/bionic-updates,bionic-security 2.56.0-1ubuntu0.1 amd64 [upgradable from: 2.56.0-1]
libseccomp2/bionic-updates,bionic-security 2.4.3-1ubuntu3.18.04.2 amd64 [upgradable from: 2.4.1-0ubuntu0.18.04.2]
libxau-dev/bionic-updates 1:1.0.8-1ubuntu1 amd64 [upgradable from: 1:1.0.8-1]
libxau6/bionic-updates 1:1.0.8-1ubuntu1 amd64 [upgradable from: 1:1.0.8-1]

这表明更新/升级尚未发生。那么我做错了什么?谢谢。

答案1

apt upgrade是交互式的:它需要用户审查并批准更改。

它可以以非交互方式(如在脚本中)使用该-y标志工作。

  • 警告-y不建议用于大多数日常使用。它会禁用防止人为失误的重要保护。版本冲突(使用非 Ubuntu 源时很常见)每次升级都会出错没有通知您。

因此如果使用 crontab 的话,00 13 * * * apt update && apt upgrade -y就会需要它。

  • 请记住,原有的 Ubuntu 系统已经每天检查 deb 和 snap 更新,并自动下载主要安全更新 (deb) 和更新的 snap 应用程序。此 crontab 不必要地重复了一些现有服务。

相关内容