How to Set Up Automated Headless Debian Upgrades with Unattended-Upgrades

What unattended-upgrades does on a headless Debian server

unattended-upgrades is Debian's package for automatically downloading and installing selected APT updates without an interactive login. On a headless server, that makes it useful for security maintenance when no desktop session is available and nobody is expected to run apt upgrade every day.

As of October 2026, Debian 13 "trixie" is the stable Debian release, and the stable unattended-upgrades package is version 2.12. The package is meant for normal package updates, especially security and stable updates. It is not a substitute for the separate, planned process of upgrading from one major Debian release to another.

The practical model is simple: APT's periodic machinery refreshes package indexes, apt-daily-upgrade.service invokes the unattended-upgrade backend on schedule, and your policy decides which package origins are allowed. Debian logs the result under /var/log/unattended-upgrades/.

Quick setup checklist

GoalRecommended action
Install the updatersudo apt update && sudo apt install unattended-upgrades
Enable daily periodic workSet APT::Periodic::Update-Package-Lists "1"; and APT::Periodic::Unattended-Upgrade "1";
Keep local policy maintainablePut overrides in a later file such as 52unattended-upgrades-local
Test before relying on itsudo unattended-upgrade --debug --dry-run
Confirm schedulingInspect apt-daily.timer and apt-daily-upgrade.timer
Watch resultsReview /var/log/unattended-upgrades/ and your monitoring alerts

1. Install unattended-upgrades

Run the installation from an administrative shell:

sudo apt update
sudo apt install unattended-upgrades

Installing the package is safe to repeat: APT will simply report that it is already installed if the host already has it. Debian describes the package as an automatic installer for security upgrades and other updates selected by policy.

Debianターミナルにapt updateとそれに続くunattended-upgradesパッケージのインストールが表示される。
Example terminal view for installing unattended-upgrades. Repository names and package counts vary by Debian release and host.

For a fleet, do not assume every image has the same default state. Some Debian installations already include unattended upgrades; others do not, and an existing configuration may have been disabled. After installation, inspect the effective configuration instead of assuming that package presence means the policy you want is active.

2. Enable periodic package-list refreshes and unattended runs

Debian's upstream README says a manual setup needs these two APT periodic values:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

The value "1" means the activity is eligible to run daily. A practical local fragment is:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Then add the two lines above. You can inspect the merged APT configuration with:

apt-config dump | grep -E 'APT::Periodic::(Update-Package-Lists|Unattended-Upgrade)'
Nanoエディタで、APTの定期設定(パッケージリストの毎日更新と自動アップグレード)を表示
APT periodic settings that request daily package-list refreshes and unattended upgrade runs.

これは、ジョブが毎日正確に午前0時に開始されることを保証するものではありません。systemdベースのDebianシステムでは、APTはタイマーユニットとランダムなスケジューリング動作を使用します。運用作業においては、推測された時刻に基づいて監視を設計するのではなく、ホスト上で実際のタイマーの状態と次のトリガーを確認してください。

3. パッケージを自動的にアップグレードできるリポジトリを定義する

キーポリシーはUnattended-Upgrade::Origins-Pattern、または古いAllowed-Origins形式の下に存在します。Debian 2.12 のドキュメントでは、パッケージ化されたファイルの後にソートするローカル APT フラグメントを作成することを推奨しています50unattended-upgrades。例:

sudo nano /etc/apt/apt.conf.d/52unattended-upgrades-local

パッケージのアップグレードによってベンダー管理の設定が置き換えられたり、競合したりする可能性があるため、出荷済みファイルを恒久的に編集するよりも、この方法の方が望ましいです。パターンを作成する前に、APTが実際に認識するリリースメタデータを確認してください。

apt-cache policy

ほとんどのヘッドレスサーバーでは、自動更新をDebianの通常の安定版およびセキュリティチャンネルに限定するのが保守的な方針です。具体的な手順は、リポジトリの構成、ミラー、サードパーティベンダー、ピン留めルールによって異なる場合があるため、apt-cache policy各環境における正しい情報源として扱ってください。

Nanoエディタで、無人アップグレードの起源ポリシーと自動再起動が無効になっていることが示されています。
ポリシーエディタの表示例です。ラベルを無作為にコピーするのではなく、サーバー上のapt-cacheポリシーによって報告されたリポジトリとオリジンを一致させてください。

知っておくと便利なオプション機能

2.12 の設定では、パッケージのブラックリストとホワイトリスト、自動再起動、メールレポート、未使用の依存関係の削除、帯域幅制限、更新日の制限、および syslog 出力がサポートされています。リモートサーバーでは、特に以下のオプションが重要になります。

Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::MailReport "only-on-error";
Unattended-Upgrade::SyslogEnable "true";

マシンに正常に動作するメール転送環境がある場合のみ、メールを設定してください。自動再起動を有効にすると、Debian のデフォルトの動作が重要になります。Automatic-Rebootが true で が/var/run/reboot-required存在する場合、ホストは確認なしで再起動できます。 を設定するUnattended-Upgrade::Automatic-Reboot-Timeことで、メンテナンス期間内に再起動をスケジュールできます。

多くの本番システムでは、サービスが冗長化されている場合、メンテナンス期間が明確に定義されている場合、および再起動後の健全性チェックが自動化されている場合を除き、自動再起動を無効にしておく方が安全です。

4. systemdタイマーを確認し、ドライテストを実行します。

通常のsystemdベースのDebianインストールでは、架空のunattended-upgrades.timerユニットを探すのではなく、APTタイマーを確認してください。

systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers apt-daily.timer apt-daily-upgrade.timer

apt-daily.timerはルーチン的なパッケージのダウンロード/インデックス作成アクティビティに関連付けられており、一方、はapt-daily-upgrade.timer無人アップグレードで使用されるアップグレード/クリーンアップサービスパスをトリガーします。

apt-daily.timerとapt-daily-upgrade.timerのSystemdターミナルステータスは、アクティブと待機の両方を示しています。
APTのデイリー処理におけるsystemdタイマーの状態。表示されている日付は例示です。実際の実行日時については、systemctl list-timersコマンドを使用してください。

次に、パッケージを変更せずにポリシーをテストします。

sudo unattended-upgrade --debug --dry-run

これは、実際のAPT構成を評価し、デバッグの詳細を記録するため、最も有用な事前チェックです。出力結果を確認し、選択されるパッケージや保留されるパッケージ、予期しないサードパーティのオリジン、依存関係の問題、構成ファイルに関するプロンプトなどを確認してください。

ドライランで何も選択されない場合、サーバーが最新の状態であればそれは正常な動作です。実際に保留中のアップデートがあるかapt list --upgradableどうかを確認し、それらの発生元とポリシーを構成済みのパターンと比較してください。

5. 無人アップグレードを監視し、意図的に再起動を処理する

パッケージは、メインのアクティビティログとdpkgの出力を以下の場所に書き込みます。

/var/log/unattended-upgrades/unattended-upgrades.log
/var/log/unattended-upgrades/unattended-upgrades-dpkg.log

役立つチェック項目は以下のとおりです。

sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"
test -f /var/run/reboot-required && cat /var/run/reboot-required

家庭用ラボの単一マシンであれば、定期的にログを確認するだけで十分な場合もあります。ビジネスシステムの場合は、リポジトリのエラー、ファイルシステムの容量不足、依存関係の破損、dpkgの状態の中断などが見過ごされないように、障害を中央監視システムまたはsyslogに送信してください。

一般的なサーバーポリシーの参照設定

シナリオポリシー運用上の注意
セキュリティ重視のサーバーDebianのセキュリティアップデートと安定版アップデートを許可し、再起動は手動で行う。停電による損失が、再起動の遅延による損失よりも大きい場合の適切なデフォルト設定
ステートレスまたは冗長ノードアップデートとスケジュールされた自動再起動を許可するヘルスチェックとロードバランサーのドレインと組み合わせる
カーネル依存型アプライアンスパッケージブラックリストは、例外処理プロセスが文書化されている場合にのみ使用してください。ブラックリスト方式では、既知の脆弱性が修正されないままになる可能性がある。
ベンダーリポジトリを備えたサーバーベンダーのオリジンの更新ポリシーがレビューされるまで、そのベンダーを許可しないでください。まず署名、サポートポリシー、ロールバックに関する期待事項を確認してください。

トラブルシューティングのクイックリファレンス

タイマーは作動していますが、パッケージはインストールされていません。

保留中のアップグレードがないか、リポジトリの出所が許可されたポリシーと一致しているか、ブラックリストや依存関係の制約によって選択が妨げられていないかを確認してください。sudo unattended-upgrade --debug --dry-runポリシーを無作為に変更するのではなく、実行して証拠を確認してください。

サーバーはパッケージ構成を待機しています

unattended-upgradesこの機能は、未解決のdpkg設定プロンプトを必要とするアップグレードを回避するように設計されています。パッケージが繰り返し保留される場合は、ログを調べて、設定ファイルの決定を手動で処理する必要があるかどうかを判断してください。

VMイメージのクローン作成後にアップデートは実行されません

タイマーが有効でアクティブになっていることを確認してから、検査してくださいapt-config dump。ゴールデンイメージには、パッケージのデフォルトとは異なるローカルの APT フラグメント、マスキング、またはポリシーのオーバーライドが含まれていることがよくあります。

自動アップグレードを停止する必要があります

Debianがサポートする再構成パスを使用してください。

sudo dpkg-reconfigure -plow unattended-upgrades

パッケージを無効にしても、通常のパッチ管理が置き換えられるわけではありません。単に、その責任が手動または外部のオーケストレーションプロセスに戻るだけです。

最終検証チェックリスト

  • unattended-upgrades信頼できるDebianリポジトリからインストールされます。
  • APTの定期的なパッケージリスト更新と自動アップグレードの値は有効になっています。
  • ローカルポリシーは、などの後続のオーバーライドファイルに保存されます52unattended-upgrades-local。
  • 許可された発信元は、に対してチェックされましたapt-cache policy。
  • apt-daily.timerそしてapt-daily-upgrade.timer活動的である。
  • sudo unattended-upgrade --debug --dry-run予期せぬ選択やエラーなく完了します。
  • ログは監視され、再起動ポリシーはお客様のメンテナンスモデルに準拠しています。
  • Debianのメジャーリリースアップグレードは、別途計画された手順で行われます。

公式資料

特定のリリースでの動作を検証する際は、Debianの公式ドキュメントを参照してください。

コメントを残す

Pardus LinuxでWindowsユーザー向けにXFCEパネルをカスタマイズする方法

Pardus LinuxでWindowsユーザー向けにXFCEパネルをカスタマイズする方法

Pardus XFCEを、下部タスクバー、アプリケーションメニュー、お気に入りランチャー、ウィンドウを開くボタン、システムトレイ、時計などを使って、使い慣れた環境のように使えるように設定しましょう。変更すべき箇所とレイアウトのテスト方法を学びます。

How to Set Up Automated Headless Debian Upgrades with Unattended-Upgrades

How to Set Up Automated Headless Debian Upgrades with Unattended-Upgrades

Configure unattended-upgrades on a headless Debian server, verify systemd timers, test safely, control reboots, and monitor automatic security updates.

SUSE Linux Enterprise Server で Cockpit Web Console が接続されない問題を修正する

SUSE Linux Enterprise Server で Cockpit Web Console が接続されない問題を修正する

SUSE Linux Enterprise Server 上の Cockpit のトラブルシューティングを行うには、HTTPS URL、systemd ソケット、インストールされているパッケージ、firewalld ゾーン、証明書、およびログを確認してください。

システムダウンタイムなしでSLES 15 SP5からSP6に移行する方法

システムダウンタイムなしでSLES 15 SP5からSP6に移行する方法

SLES 15 SP5からSP6への移行中にサービスを継続的に利用できるようにするための、テスト済みのSLE HAローリングアップグレード、ノードごとのチェック、および明確な単一サーバーダウンタイムに関する注意点について学びましょう。

Ubuntu Server 24.04でPi-hole DNS-over-HTTPSを設定する方法

Ubuntu Server 24.04でPi-hole DNS-over-HTTPSを設定する方法

Ubuntu Server 24.04 上で Pi-hole を設定し、dnscrypt-proxy を使用して DNS-over-HTTPS を利用するようにしてから、ローカルのアップストリームを確認し、一般的な DNS の競合を回避します。

SSH X11転送経由でYaST GUIが起動しない問題を解決する方法

SSH X11転送経由でYaST GUIが起動しない問題を解決する方法

SSH X11転送経由のYaST GUIの不具合をトラブルシューティングします。DISPLAYをテストし、既知のQt XIOエラーを修正し、SSH設定を確認し、必要に応じてncursesに切り替えます。

ローカルSUSE RMTサーバー(SMT代替)のセットアップ方法

ローカルSUSE RMTサーバー(SMT代替)のセットアップ方法

SLES 15 上に SUSE RMT をセットアップし、SCC メタデータを同期し、選択したリポジトリをミラーリングし、HTTPS 経由でクライアントを登録し、SMT からの移行における制限事項を理解する。

Pardus Linux 23でサウンドカードドライバが検出されない問題を修正する

Pardus Linux 23でサウンドカードドライバが検出されない問題を修正する

Pardus Linux 23でサウンドカードが認識されない場合のトラブルシューティングを行います。ALSA検出、カーネルモジュール、オーディオサービス、出力プロファイル、ファームウェア、およびアップデートを安全に確認します。

Pardus KVMゲストでディスプレイ解像度が1024x768に固定される問題を修正する

Pardus KVMゲストでディスプレイ解像度が1024x768に固定される問題を修正する

Pardus KVMゲストが1024x768でフリーズしてしまう問題を解決するには、仮想GPU、SPICEエージェント、X11またはWaylandセッションを確認し、より高いディスプレイモードが正しく動作していることを確認してください。

Debianで起動時にリモートSSHFSディレクトリを自動的にマウントする方法

Debianで起動時にリモートSSHFSディレクトリを自動的にマウントする方法

Debianにおいて、キーベースのSSH、/etc/fstab、systemdネットワークオプション、自動マウント、および検証手順を用いて、起動時にリモートSSHFSディレクトリを自動的にマウントします。