Apt

使 apt-get 更新和升級自動化和無人值守

  • January 30, 2021

我管理著大約 7 台 Debian 伺服器,我想將它們設置為自動更新。所以,我創建了一個這樣的腳本:

#!/bin/sh
apt-get update
apt-get upgrade

並將其放在root的 crontab 列表中。不幸的是,它總是掛在升級部分,詢問我是否確定要升級。因為這是一項 cron 工作,所以在它給我發電子郵件說它失敗之前,我看不到輸出。有沒有辦法讓它跳過那個提示,然後自動升級?

使用 -y 選項 apt-get 讓它不詢問。來自man apt-get

  -y, --yes, --assume-yes
      Automatic yes to prompts; assume "yes" as answer to all prompts and
      run non-interactively. If an undesirable situation, such as
      changing a held package, trying to install a unauthenticated
      package or removing an essential package occurs then apt-get will
      abort. Configuration Item: APT::Get::Assume-Yes.

您還可以設置 DEBIAN_FRONTEND 環境變數

DEBIAN_FRONTEND=noninteractive apt-get -y upgrade

好吧,也許您使用了錯誤的工具。unattended-upgrades包每天安裝安全升級(可配置),您可以配置升級或不升級哪些包等。可以使用安裝:

sudo apt-get install unattended-upgrades

來自man unattended-upgrades

配置是通過 apt 配置機製完成的。預設配置文件位於 /etc/apt/apt.conf.d/50unattended-upgrades

引用自:https://unix.stackexchange.com/questions/107194