私のdebian-jessieで無人アップグレードを開始するのは誰なのかと思います。
説明このプログラムは、セキュリティアップグレードを自動的に無人でダウンロードしてインストールできます。構成済みのAPTソースからのパッケージのみをインストールし、構成ファイルの変更に関するdpkgプロンプトを確認します。すべての出力はログに記録されます。このスクリプトは、APT :: Periodic :: Unattended-Upgradeオプションのバックエンドであり、cronから(たとえば、/ 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ユーザーはこの変数なしで実行できます。
/etc/crontab
には、run-parts /etc/cron.daily
を実行する/etc/cron.daily/apt-compat
ファイルを含むフォルダーを参照するexec /usr/lib/apt/apt.systemd.daily
行があります
Debian 9(ストレッチ)およびDebian 10(バスター)では、無人アップグレードのスケジュールは2つのステップで決定されます。
これらの一方の周波数が低いと、もう一方の周波数が高くなるため、両方のステップの設定が正しいことを確認してください。
プロセスは、次の2つの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 から取得)
Systemdタイマーまたはanacronジョブをシステムスケジューラとして使用する場合でも、どちらも最終的に同じスクリプトを呼び出します。このスクリプトは、再度実行するタイミングかどうかの新しい2番目の決定を行いますが、現在は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バスター)では、APT :: Periodic値を"1"
から"always"
に変更できます。これを一度実行すると、システムスケジューラ(systemdタイマーまたはanacron)を操作して、スケジュールを変更するだけで済みます。
上記の詳細について、または無人アップグレードを1日に複数回実行するようにスケジュールする場合は、ここで私の回答を参照してください: 無人アップグレードを毎日ではなく数時間ごとに実行する方法 。
anacron
開始unattended-upgrades
およびその他のSystem-cronジョブ。
cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly