如何在 CLI 中每 4 周检查一次更新并自动安装它们而无需转到软件源?

Kan*_*ooo 10 updates command-line

安装后,我在计算机上运行了一组自定义命令。如何让 Ubuntu 每 4 周检查一次更新并在检查时自动安装它们?

我需要通过命令行完成此操作,以便在设置计算机时为普通用户进行设置。

第一个命令将使更新管理器每 2 周检查一次更新,因为它们并不总是如此多,以节省 Ubuntu 服务器的带宽。

我还需要设置一下,这样用户就不需要点击安装更新,因为每次帮朋友设置电脑都很累。

Ste*_*zzo 10

首先,启用这样的自动更新:

sudo apt-get install unattended-upgrades
Run Code Online (Sandbox Code Playgroud)

然后你需要编辑它的配置,输入

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Run Code Online (Sandbox Code Playgroud)

nano如果需要,请替换为您喜欢的文本编辑器)

该文件如下所示:

Unattended-Upgrade::Allowed-Origins {
        "Ubuntu maverick-security";
//      "Ubuntu maverick-updates";
};
Run Code Online (Sandbox Code Playgroud)

//意味着该行是一条注释,不会被程序考虑,删除笔划以包含稳定版本更新以及安全修复程序。另外,替换maverick为您正在运行的 Ubuntu 版本。

要设置系统检查更新的时间间隔,请/etc/apt/apt.conf.d/10periodic使用文本编辑器编辑文件:

APT::Periodic::Update-Package-Lists "14";
APT::Periodic::Download-Upgradeable-Packages "14";
APT::Periodic::AutocleanInterval "14";
APT::Periodic::Unattended-Upgrade "14";
Run Code Online (Sandbox Code Playgroud)

在本例中,系统每两周更新一次。

有关更详细的说明,请参阅Ubuntu 服务器指南中的自动更新


请注意,papukaija 的回答是谈论更新管理器对话框在您的屏幕上弹出的时间间隔,我猜这不是您想要的,但我不确定。:)


lur*_*uri 2

如果您的意思是更新所有“可更新”的内容,即更新所有软件包,我想您可以每 28 天apt-get update && apt-get upgrade -y运行一次 cron(在根 cron 内)。

由于限制性PATH设置,有些人在使用 crond 作业时遇到问题。如果您有任何问题,您可以PATH在文件的开头定义您的问题crontab -e(如CronHowto中的建议)

另外,为了检查一切是否正常,我会记录结果,如下所示:

root@PORTATIL:/var/log$ crontab -l
* * */2 * * /usr/share/myupdate.sh > /var/log/myupdate.log
Run Code Online (Sandbox Code Playgroud)

myupdate.sh可以像这样简单:

#!/bin/bash
#Testing updates
echo "$(date) Crond myupdate sarting."
apt-get update -y
apt-get upgrade -y
echo "$(date)Crond myupdate finished."
Run Code Online (Sandbox Code Playgroud)


pap*_*ija 1

您可以通过打开gconf-editor(例如使用 Alt+F2 并输入 gconf-editor)来更改 update-manager 运行的时间间隔。然后定位/apps/update-notifier.

间隔在键中定义,regular_auto_launch_interval其中值是天数。我认为这种方法不会影响非图形自动更新程序(无人值守升级)。

请注意,由于错误, Ubuntu 可能不会自动安装安全更新。

  • 这是此答案的命令行版本:“gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 7”(其中 7 是以天为单位的间隔) (4认同)