如何在 Ubuntu 24.04、22.04 或 20.04 上配置無人值守升級

Ubuntu 是最受歡迎的基於 Linux 的作業系統之一,廣泛應用於伺服器、桌上型電腦和嵌入式裝置。它提供了大量的軟體包和工具庫,使用者可以安裝和配置以滿足他們的需求。然而,對於許多軟體包和更新來說,保持系統最新且安全可能具有挑戰性。這就是無人值守升級包的用武之地。和設定無人值守升級:命令列終端。

什麼是無人值守升級包?

無人值守升級是一個在 Ubuntu 系統上自動安裝安全性和其他更新的軟體包。它在後台靜默運行,並定期檢查新更新,自動下載和​​安裝它們,無需用戶幹預。無人值守升級包是一個重要的工具,可以透過最新的更新和修補程式來確保系統的安全性和穩定性。

無人值守升級設定的優點與功能:

以下是 Ubuntu 上無人值守升級套件的一些優點和功能:

  • 自動更新:無人值守升級套件可自動下載和​​安裝更新,節省使用者的時間和精力。
  • 提高安全性:此軟體包可確保系統始終保持最新的安全性更新和修補程式,從而降低惡意軟體攻擊和系統漏洞的風險。
  • 增強穩定性:無人值守升級套件透過保持系統最新狀態來確保系統的穩定性和可靠性。
  • 可自訂的設定:使用者可以根據自己的需求自訂軟體包設置,例如自動安裝哪些更新、忽略哪些更新以及何時安裝它們。
  • 通知系統:該軟體包向使用者發送有關已安裝更新的通知,從而提供對系統更新的透明度和控制。

更新Ubuntu

在安裝和設定無人值守升級套件之前,您應該更新您的 Ubuntu 系統以避免衝突。若要更新您的 Ubuntu 系統,請開啟終端機並輸入以下命令:

sudo apt update && sudo apt upgrade

此命令會將所有已安裝的軟體包及其相依性更新至最新版本。根據您的系統可用的更新數量,這可能需要一段時間。

安裝無人升級包

若要安裝無人值守升級包,請開啟終端機並輸入以下命令:

sudo apt install unattended-upgrades

此命令將在您的 Ubuntu 系統上安裝該軟體包及其所有相依性。該軟體包應預設安裝。但是,如果您已刪除它,請使用上面的命令重新安裝它。

如果您希望 Ubuntu 系統在應用程式要求系統自動重新啟動的升級後重新啟動,您還需要安裝 apt-config-auto-update 軟體套件。使用以下命令來安裝它:

sudo apt install apt-config-auto-update

也建議筆記型電腦用戶安裝 powermgmt-base 軟體包以使用無人值守的電池選項。若要安裝此軟體包,請開啟終端機並輸入以下命令:

sudo apt install powermgmt-base

安裝軟體包後,您必須對其進行配置以滿足您的需求。例如,您可能想要自訂自動安裝哪些更新、忽略哪些更新以及何時安裝它們。請注意,無人值守升級包需要 root 權限才能運作。因此,您必須使用 sudo 命令來運行本指南中提到的所有命令。

也建議驗證無人值守升級包是否正常運作。為此,請打開終端機並輸入以下命令:

sudo unattended-upgrades --dry-run --debug

熟悉無人值守升級的 systemctl 命令非常重要,因為您可能需要在進行更改或重新啟動後檢查狀態。若要檢查無人值守升級的狀態,請使用下列命令:

systemctl status unattended-upgrades

以下 systemctl 指令將允許您啟動、停止、啟動時啟用、啟動時停用或重新啟動無人值守升級服務:

啟動無人服務:

sudo systemctl start unattended-upgrades

停止無人服務:

sudo systemctl stop unattended-upgrades

啟動時啟用無人服務:

sudo systemctl enable unattended-upgrades

啟動時停用無人服務:

sudo systemctl disable unattended-upgrades

重啟無人服務:

sudo systemctl restart unattended-upgrades

配置無人值守升級

本節介紹使用終端指令在設定檔中設定無人值守升級包設定。值得注意的是,這些設定是可選的,可以根據您的要求進行個性化設定。每個設定都會詳細解釋,以幫助您了解其目的和功能。這將使您在 Ubuntu 系統上配置無人值守升級套件時能夠做出明智的決定。

在進入設定檔之前,首先,這裡總結了無人值守升級套件的所有 CLI 選項及其說明:

選項描述
-h, –幫助顯示幫助訊息並退出
-d, –調試啟用偵錯訊息
–apt-調試使 apt/libapt 列印詳細的偵錯訊息
-v, –詳細啟用資訊訊息
– 試運行模擬升級過程並下載但不安裝
–僅下載只下載升級;不要嘗試安裝它們
–最少升級步驟以最少的步驟升級軟體包(並允許使用 SIGTERM 中斷)—這是預設行為
–無最少升級步驟將所有軟體包一起升級,而不是分成較小的套件

在終端機中執行 unattended-upgrade 命令時可以使用這些選項來控制自動升級過程的行為。例如,–dry-run 選項可以幫助測試升級過程,而無需實際對系統進行任何更改,而 –download-only 選項可用於下載升級而不安裝它們。

–minimal-upgrade-steps 選項是無人值守升級的預設行為,而 –no-minimal-upgrade-steps 選項會一起升級所有包,而不是以較小的集合進行升級。在配置無人值守升級時了解這些選項對於確保行為符合您的偏好和要求非常重要。

編輯設定檔

若要編輯設定文件,建議使用具有root權限的文字編輯器,例如nano。若要使用 nano 開啟該文件,請執行以下命令:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

這將在 Nano 編輯器中開啟設定檔。從這裡,您可以修改上面列出的各種選項。請記住刪除文件中的任何註釋(以“//”或“#”開頭的行)以啟動選項。

完成文件編輯後,按下「Ctrl+X」、「Y」、「Enter」儲存並退出。

允許的來源

此選項指定應安裝更新的來源。預設情況下,僅允許安全性和更新儲存庫。您可以透過取消註釋此選項並新增所需的儲存庫來將其他儲存庫新增至清單中,如下例所示:

Unattended-Upgrade::Allowed-Origins {
      "${distro_id}:${distro_codename}";
      "${distro_id}:${distro_codename}-security";
      "${distro_id}:${distro_codename}-updates";
      "${distro_id}:${distro_codename}-proposed";
      "${distro_id}:${distro_codename}-backports";
};

包裹黑名單

此選項可讓您指定應從自動更新中排除的軟體包。若要排除包,請取消註解此選項並新增所需的包,如下例所示:

Unattended-Upgrade::Package-Blacklist {
      "my-package";
      "my-other-package";
};

AutoFixInterruptedDpkg

此選項決定係統是否應自動修復中斷的「dpkg」安裝。若要啟用自動修復,請將值設為“true”,如下例所示:

Unattended-Upgrade::AutoFixInterruptedDpkg "true";

開發者發布“自動”

此選項指定是否自動升級到開發版本。預設情況下,此選項處於停用狀態。若要啟用自動升級至開發版本,請將值設為“auto”,如下例所示:

Unattended-Upgrade::DevRelease "auto";

最小步驟“正確”

此選項指定升級期間是否執行最少步驟。預設情況下,此選項處於啟用狀態。若要停用最少步驟,請將值設為“false”,如下例所示:

Unattended-Upgrade::MinimalSteps "false";

關機時安裝“假”

此選項指定是否在關機時安裝升級。預設情況下,此選項處於停用狀態。若要啟用關機時安裝,請將值設為“true”,如下例所示:

Unattended-Upgrade::InstallOnShutdown "true";

郵件

此選項指定應將通知傳送到的電子郵件地址。預設情況下,不發送通知。若要指定電子郵件地址,請將其新增為字串值,如下例所示:

Unattended-Upgrade::Mail "example@mail.com";

MailReport“變更”

此選項指定何時發送電子郵件通知。預設情況下,僅當發生變更時才發送通知。要每次發送通知,請將值設為“on-start”,如下例所示:

Unattended-Upgrade::MailReport "on-start";

刪除未使用的核心包

此選項指定升級後是否刪除未使用的核心包。預設情況下,此選項處於啟用狀態。若要禁止刪除未使用的核心包,請將值設為“false”,如下例所示:

Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";

刪除新的未使用的依賴項

此設定控制刪除軟體包升級後系統不再需要的新依賴項。預設啟用此設置,任何不再需要的新依賴項都會自動從系統中刪除。若要啟用此設置,請使用以下命令:

Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

如果您希望保留這些新的依賴項,可以透過將值變更為「false」來停用此設定。但是,請注意,這可能會導致系統上累積未使用的依賴項,從而佔用寶貴的磁碟空間。

刪除未使用的依賴項

此選項指定升級後是否刪除未使用的依賴項。預設情況下,此選項處於停用狀態。若要啟用刪除未使用的依賴項,請將值設為“true”,如下例所示:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

自動重啟

此選項指定升級後是否自動重新啟動系統。預設情況下,此選項處於停用狀態。若要啟用自動重新啟動,請將值設為“true”,如下例所示:

Unattended-Upgrade::Automatic-Reboot "true";

自動重新啟動與用戶

此選項指定使用者自動登入時是否重新啟動系統。預設情況下,此選項處於啟用狀態。若要在使用者登入時停用自動重新啟動,請將值設為“false”,如下例所示:

Unattended-Upgrade::Automatic-Reboot-WithUsers "false";

自動重啟時間

此選項指定係統在升級後自動重新啟動的時間。預設情況下,此選項設定為“02:00”。若要變更重新啟動時間,請修改該值,如下例所示:

Unattended-Upgrade::Automatic-Reboot-Time "03:00";

取得::http::Dl-Limit

此選項指定包下載的最大下載速度(以千位元組每秒為單位)。預設情況下,此選項處於停用狀態。若要啟用下載速度限制,請將值設為所需的速度,如下例所示:

Acquire::http::Dl-Limit "100";

系統日誌啟用

此選項指定是否將升級事件記錄到系統日誌中。預設情況下,此選項處於啟用狀態。若要停用日誌記錄,請將值設為“false”,如下例所示:

Unattended-Upgrade::SyslogEnable "false";

系統日誌工具

此選項指定應記錄升級事件的設施。預設情況下,事件被記錄到「守護進程」設施。若要將事件記錄到不同的設施,請修改該數值,如下例所示:

Unattended-Upgrade::SyslogFacility "local7";

僅使用交流電源

此選項指定是否僅在系統連接到交流電源時執行升級。預設情況下,此選項處於停用狀態。若要僅在交流電源上啟用升級,請將值設為“true”,如下例所示:

Unattended-Upgrade::SyslogFacility "local7";

跳過按流量計費的連線更新

此選項指定當系統連接到按流量計費的連線時是否跳過更新。預設情況下,此選項處於啟用狀態。若要下載按流量計費的連接的更新,請將值設為“false”,如下例所示:

Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";

冗長

此選項指定是否輸出詳細升級資訊。預設情況下,此選項處於停用狀態。若要啟用詳細輸出,請將值設為“true”,如下例所示:

Unattended-Upgrade::Verbose "true";

偵錯

此選項指定升級過程中是否輸出偵錯資訊。預設情況下,此選項處於停用狀態。若要啟用偵錯輸出,請將值設為“true”,如下例所示:

Unattended-Upgrade::Debug "true";

允許降級

此選項指定是否允許在升級過程中降級軟體包。預設情況下,此選項處於停用狀態。若要允許降級,請將值設為“true”,如下例所示:

Unattended-Upgrade::Allow-downgrade "true";

請記住,允許降級可能很危險,並會導致系統不穩定或安全漏洞。建議您僅在必要時啟用此選項,並仔細考慮所涉及的風險。

測試和應用更改

對設定檔進行任何更改後,請執行以下命令以確保應用更改非常重要:

sudo unattended-upgrades --dry-run --debug

此命令將模擬升級運行並顯示由於對設定檔所做的更改而可能發生的任何錯誤或警告。如果一切正常,您可以執行以下命令來執行實際升級:

sudo unattended-upgrades

此命令將根據配置設定自動檢查並安裝可用的升級。

透過上述步驟,您應該更了解如何在 Ubuntu 系統上配置和修改無人值守升級套件。

使用 Cron 作業安排自動升級

要在 Ubuntu 系統上安排自動無人值守升級,您可以使用 cron 作業。 cron 作業是 Linux 中基於時間的任務排程程序,可讓您在指定的時間或間隔自動執行命令或腳本。

若要建立無人值守升級的 cron 作業,請依照下列步驟操作:

執行以下命令開啟 crontab 設定檔:

sudo crontab -e

這將在 nano 編輯器中開啟 crontab 檔案。將以下行新增至文件底部:

0 0 * * * /usr/bin/unattended-upgrade -d

此行指定無人值守升級指令應每天在午夜 (0 0 * * *) 運作。按“Ctrl+X”,然後按“Y”,然後按“Enter”儲存並退出檔案。

上述 cron 作業將在每天午夜執行無人值守升級命令,檢查可用的升級,並根據設定設定自動安裝它們。

您應該僅在系統不使用時安排自動升級,因為升級可能需要重新啟動或導致應用程式重新啟動。

檢查無人值守升級日誌

預設情況下,無人值守升級包將所有升級活動記錄到系統日誌工具中。日誌位於 /var/log/syslog 檔案和其他系統日誌中。

若要檢查無人值守升級日誌,可以使用下列命令:

sudo grep unattended-upgrades /var/log/syslog

此命令將在系統日誌檔案中搜尋包含「unattended-upgrades」關鍵字的條目並將其顯示在螢幕上。您也可以使用以下命令顯示 syslog 檔案中的最後 50 個項目:

sudo tail -n 50 /var/log/syslog | grep unattended-upgrades

此指令將顯示 syslog 檔案中包含「無人值守升級」關鍵字的最後 50 個項目。

除了上述命令之外,您還可以使用各種 grep 選項根據特定條件過濾日誌。例如,要按日期和時間過濾日誌,可以使用以下命令:

sudo grep "unattended-upgrades.*YYYY-MM-DD" /var/log/syslog

將“YYYY-MM-DD”替換為所需的年月日格式的日期。此命令將顯示包含“unattended-upgrades”關鍵字並與指定日期相符的所有日誌條目。

您也可以使用以下命令按套件名稱過濾日誌:

sudo grep "unattended-upgrades.*<package_name>" /var/log/syslog

代替 ” ” 與您要搜尋的套件名稱。此命令將顯示包含“unattended-upgrades”關鍵字並與指定套件名稱相符的所有日誌條目。

透過上述命令,您可以輕鬆檢查和過濾 Ubuntu 系統上的無人值守升級日誌,並排除升級過程中可能出現的任何問題。

結論

總之,在 Ubuntu 系統上設定和配置無人值守升級可以大大提高其安全性和穩定性。透過自動安裝安全性更新和補丁,您可以確保您的系統始終保持最新的安全性修復程序,而無需手動檢查更新並安裝它們。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

在〈How to Configure Unattended Upgrades on Ubuntu 24.04, 22.04 or 20.04〉中有 3 則留言

  1. 您好,這一行有一個拼字錯誤,enable 缺少 L。

    啟動時啟用無人服務:
    sudo systemctl enabe 無人值守升級

    回覆

發佈留言