web-dev-qa-db-ja.com

Debian Stretchで無人アップグレードをスケジュールできません

私はDebian 9 Stretchを実行しています。

次のパッケージをインストールしています。

unattended-upgrades/stable,now 0.93.1+nmu1 all [installed]

私の20auto-upgradesファイルは次のようになります:

# cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

私の50unattended-upgradesは次のようになります:

# cat /etc/apt/apt.conf.d/50unattended-upgrades
// Unattended-Upgrade::Origins-Pattern controls which packages are
// upgraded.
//
// Lines below have the format format is "keyword=value,...".  A
// package will be upgraded only if the values in its metadata match
// all the supplied keywords in a line.  (In other words, omitted
// keywords are wild cards.) The keywords originate from the Release
// file, but several aliases are accepted.  The accepted keywords are:
//   a,archive,suite (eg, "stable")
//   c,component     (eg, "main", "contrib", "non-free")
//   l,label         (eg, "Debian", "Debian-Security")
//   o,Origin        (eg, "Debian", "Unofficial Multimedia Packages")
//   n,codename      (eg, "jessie", "jessie-updates")
//     site          (eg, "http.debian.net")
// The available values on the system are printed by the command
// "apt-cache policy", and can be debugged by running
// "unattended-upgrades -d" and looking at the log file.
//
// Within lines unattended-upgrades allows 2 macros whose values are
// derived from /etc/debian_version:
//   ${distro_id}            Installed Origin.
//   ${distro_codename}      Installed codename (eg, "jessie")
Unattended-Upgrade::Origins-Pattern {
        // Codename based matching:
        // This will follow the migration of a release through different
        // archives (e.g. from testing to stable and later oldstable).
//      "o=Debian,n=jessie";
//      "o=Debian,n=jessie-updates";
//      "o=Debian,n=jessie-proposed-updates";
//      "o=Debian,n=jessie,l=Debian-Security";

        // Archive or Suite based matching:
        // Note that this will silently match a different release after
        // migration to the specified archive (e.g. testing becomes the
        // new stable).
//      "o=Debian,a=stable";
        "o=Debian,a=stable-updates";
        "o=Debian,a=proposed-updates";
        "Origin=Debian,codename=${distro_codename},label=Debian-Security";
};

// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {
//  "vim";
//  "libc6";
//  "libc6-dev";
//  "libc6-i686";
};

// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
//   dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
//Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

// Automatically reboot even if there are users currently logged in.
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

// Enable logging to syslog. Default is False
// Unattended-Upgrade::SyslogEnable "false";

// Specify syslog facility. Default is daemon
// Unattended-Upgrade::SyslogFacility "daemon";

この時点でapt updateを実行すると、次のことがわかります。

# apt update
<skipping-output>
Reading package lists... Done
Building dependency tree
Reading state information... Done
52 packages can be upgraded. Run 'apt list --upgradable' to see them.

現在、デフォルトで/lib/systemd/system/apt-daily.timer/lib/systemd/system/apt-daily-upgrade.timerがあります。

彼らはデフォルトのままにされています

# cat /lib/systemd/system/apt-daily.timer
[Unit]
Description=Daily apt download activities

[Timer]
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Persistent=true

[Install]
WantedBy=timers.target

そして

# cat /lib/systemd/system/apt-daily-upgrade.timer
[Unit]
Description=Daily apt upgrade and clean activities
After=apt-daily.timer

[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=60m
Persistent=true

[Install]
WantedBy=timers.target

しかし、私はこれらの値を上書きしたいと思います。そこで、次のファイルを作成しました。

# cat /etc/systemd/system/apt-daily.timer.d/override.conf
[Timer]
OnCalendar=
OnCalendar=17:23

そして

# cat /etc/systemd/system/apt-daily-upgrade.d/override.conf
[Timer]
OnCalendar=
OnCalendar=17:24

その後、2つのサービスを再開しました。

systemctl restart apt-daily unattended-upgrades.service

しかし、無人アップグレードは実行されていません。ログディレクトリが空のようです:

# ls -tlrh /var/log/unattended-upgrades
total 0
-rw-r--r-- 1 root root 0 Dec 22  2017 unattended-upgrades-shutdown.log

ここで見逃したかもしれないアイデア。 ?

[〜#〜]編集[〜#〜]

コマンドjournalctl --since yesterday -u apt-daily.serviceを実行すると、次のようになります。

Jan 23 00:48:47 Host systemd[1]: Starting Daily apt download activities...
Jan 23 00:48:47 Host apt.systemd.daily[5315]: verbose level 2
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Reading package lists...
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Building dependency tree...
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Reading state information...
Jan 23 00:48:48 Host apt.systemd.daily[5315]: check_stamp: interval=86400, now=1548201600, stamp=1548115200, delta=86400 (sec)
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:1 https://my-repo/debian jessie-backports InRelease [166 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Ign:2 https://my-repo/debian jessie InRelease
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:3 https://my-repo/debian jessie-updates InRelease [145 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:4 https://my-repo/debian jessie-proposed-updates InRelease [139 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:5 https://my-repo/debian-security jessie/updates InRelease [44.9 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Hit:6 https://my-repo/sapmachine/AMD64 ./ InRelease
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:7 https://my-repo/debian stretch-backports InRelease [91.8 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Ign:8 https://my-repo/debian stretch InRelease
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:9 https://my-repo/debian stretch-updates InRelease [91.0 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:10 https://my-repo/debian stretch-proposed-updates InRelease [96.3 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Get:11 https://my-repo/debian-security stretch/updates InRelease [94.3 kB]
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Hit:12 https://my-repo/debian jessie Release
Jan 23 00:48:48 Host apt.systemd.daily[5315]: Hit:13 https://my-repo/debian stretch Release
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:14 https://my-repo/debian-security jessie/updates/main AMD64 Packages [636 kB]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:15 https://my-repo/debian-security jessie/updates/main Translation-en [320 kB]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:16 https://my-repo/debian stretch-proposed-updates/main AMD64 Packages.diff/Index [27.8 kB]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:17 https://my-repo/debian stretch-proposed-updates/main Translation-en.diff/Index [27.8 kB]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:18 https://my-repo/debian stretch-proposed-updates/main AMD64 Packages 2019-01-22-2008.10.pdiff [2,401 B]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:18 https://my-repo/debian stretch-proposed-updates/main AMD64 Packages 2019-01-22-2008.10.pdiff [2,401 B]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:19 https://my-repo/debian stretch-proposed-updates/main Translation-en 2019-01-22-2008.10.pdiff [1,674 B]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Get:19 https://my-repo/debian stretch-proposed-updates/main Translation-en 2019-01-22-2008.10.pdiff [1,674 B]
Jan 23 00:48:49 Host apt.systemd.daily[5315]: Fetched 1,885 kB in 1s (1,283 kB/s)
Jan 23 00:48:51 Host apt.systemd.daily[5315]: Reading package lists...
Jan 23 00:48:51 Host apt.systemd.daily[5315]: download updated metadata (success).
Jan 23 00:48:51 Host apt.systemd.daily[5315]: send dbus signal (success)
Jan 23 00:48:51 Host apt.systemd.daily[5315]: check_stamp: interval=0
Jan 23 00:48:51 Host apt.systemd.daily[5315]: download upgradable (not run)
Jan 23 00:48:52 Host apt.systemd.daily[5315]: unattended-upgrade -d (not run)
Jan 23 00:48:52 Host systemd[1]: Started Daily apt download activities.
3
Jason Stanley

間違いはこの行にあります:

猫/etc/systemd/system/apt-daily-upgrade.d/override.conf

あなたはおそらくそれを https://wiki.debian.org/UnattendedUpgrades の公式のdebianドキュメントからコピーしましたが、現在多くの人々を誤解させている誤りがあります。と呼ばれるファイルを作成することでアップグレード時間を上書きできると主張しています

/etc/systemd/system/apt-daily-upgrade.d/override.conf

ただし、正しいパスは

/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf

これを追加したら、次のコマンドを実行して、機能することを確認します。

Sudo systemctl daemon-reload 

新しく作成したファイルに慣れるため

Sudo systemctl restart apt-daily-upgrade.timer

override.confを適用する

Sudo systemctl status apt-daily-upgrade.timer

次のタイマーイベントに適切な時間がスケジュールされていることを示します)

ダウンロード時間も編集した場合:

Sudo systemctl restart apt-daily.timer
Sudo systemctl status apt-daily.timer

私はまだ[email protected]に編集者ではないので通知しました。

2
Rolf Wojtech