無人值守升級是如何開始的,我該如何修改它的時間表?
我想知道誰在我的 debian-jessie 中開始無人值守升級:
- 我的手冊頁
DESCRIPTION This program can download and install security upgrades automatically and unattended, taking care to only install packages from the config‐ ured APT source, and checking for dpkg prompts about configuration file changes. All output is logged to /var/log/unattended-upgrades.log. This script is the backend for the APT::Periodic::Unattended-Upgrade option and designed to be run from cron (e.g. via /etc/cron.daily/apt).
- 但是我的 crontab 沒有通過 crontab 命令顯示任何內容:
@stefano:/etc/cron.daily$ crontab -l no crontab for stefano # crontab -l no crontab for root
- 但是我的無人值守升級工作正常!(我的無人值守升級日誌文件):
2017-02-05 12:42:42,835 INFO Initial blacklisted packages: 2017-02-05 12:42:42,866 INFO Initial whitelisted packages: 2017-02-05 12:42:42,868 INFO Starting unattended upgrades script 2017-02-05 12:42:42,870 INFO Allowed origins are: ['o=Debian,n=jessie', 'o=Debian,n=jessie-updates', 'o=Debian,n=jessie-backports', 'origin=Debian,codename=jessie,label=Debian-Security'] 2017-02-05 12:43:15,848 INFO No packages found that can be upgraded unattended
如果我想更改我的日程安排,我必須在哪裡檢查/修改?
如果我想更改我的日程安排,我必須在哪裡檢查/修改?
配置
unattended-upgrades
為自動應用。要驗證它檢查
/etc/apt/apt.conf.d/20auto-upgrades
文件,你會得到:APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
要修改它,您應該執行以下命令:
dpkg-reconfigure -plow unattended-upgrades
樣本輸出:
Applying updates on a frequent basis is an important part of keeping systems secure. By default, updates need to be applied manually using package management tools. Alternatively, you can choose to have this system automatically download and install security updates. Automatically download and install stable updates?
選擇
NO
停止自動更新再次驗證
/etc/apt/apt.conf.d/20auto-upgrades
,你應該得到:APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Unattended-Upgrade "0";
編輯
要執行
unattended-upgrades
每週編輯您/etc/apt/apt.conf.d/20auto-upgrades
的如下:APT::Periodic::Update-Package-Lists "7"; APT::Periodic::Unattended-Upgrade "1";
可以在 Debian-Wiki 上找到詳細範例:通過 /etc/apt/apt.conf.d/02periodic 自動呼叫
APT::Periodic::Update-Package-Lists
此選項允許您指定刷新包列表的頻率(以天為單位)。apticron 使用者可以不用這個變數,因為 apticron 已經完成了這個任務。
使用 Debian 9 (stretch) 和 Debian 10 (buster),無人值守升級的時間表由兩個步驟確定:
- 系統調度程序(例如 systemd 計時器或 cron/anacron),以及
- APT::週期性間隔。
其中一個頻率較低會阻礙另一個頻率較高,因此請確保兩個步驟的設置都是正確的。
1.系統調度器
該過程由以下兩個 systemd 計時器啟動:
- **
apt-daily.timer
**更新軟體包列表 (apt-get update
),以及- **
apt-daily-upgrade.timer
**安裝升級 (unattended-upgrade
)。(anacron 作業
/etc/cron.daily/apt-compat
仍然存在,但如果檢測到 systemd 則會退出。如果您不使用 systemd,請參閱其他答案或有關更改計劃的 anacron 文件。)要修改更新計劃:
$ sudo systemctl edit apt-daily.timer
這會創建
/etc/systemd/system/apt-daily.timer.d/override.conf
. 填寫如下,例如:[Timer] OnCalendar= OnCalendar=01:00 RandomizedDelaySec=15m
升級計劃相同:
$ sudo systemctl edit apt-daily-upgrade.timer [Timer] OnCalendar= OnCalendar=01:30 RandomizedDelaySec=0
檢查您的工作:
$ systemctl cat apt-daily{,-upgrade}.timer $ systemctl --all list-timers apt-daily{,-upgrade}.timer
(部分取自Debian Wiki:UnattendedUpgrades。)
2. APT::週期性間隔
無論您使用 systemd 計時器還是 anacron 作業作為系統調度程序,最後都呼叫相同的腳本。該腳本再次決定是否該再次執行,但現在基於 APT::Periodic 中設置的間隔。您通常應該在以下位置找到這些設置
/etc/apt/apt.conf.d/20auto-upgrades
:APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
我一直認為
"1"
這裡的值只是表示 True 或 On,但實際上,它是執行之間的最小間隔,以天表示。如果腳本確定自上次執行請求的操作以來經過的時間更短,它就不會執行該操作,而不管系統調度程序是否呼叫了它。使用 1.5 以上的 apt 版本(Debian 10 buster),您可以將 APT::Periodic 值從 更改
"1"
為"always"
。您這樣做一次,從那時起,您只需要與系統調度程序(systemd timer 或 anacron)互動來更改調度。有關上述內容的更多詳細資訊,或者如果您想安排無人值守升級每天執行一次以上,請在此處查看我的答案:如何執行無人值守升級而不是每天而是每隔幾個小時執行一次。