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の公式ドキュメントを参照してください。

コメントを残す

失われたパーティションとハードディスクデータを安全に復元する方法

失われたパーティションとハードディスクデータを安全に復元する方法

TestDiskとPhotoRecを使って、失われたパーティションやファイルを復元する方法を学びましょう。ソースドライブを保護し、安全にスキャンを行い、復元したデータを別のディスクに保存します。

LinuxデスクトップでQRコードをスキャンする方法

LinuxデスクトップでQRコードをスキャンする方法

CoBangを使えば、Webカメラまたは画像ファイルでLinux上でQRコードをスキャンできます。インストールオプション、セットアップ手順、Flatpakカメラへのアクセスに関する修正方法については、こちらをご覧ください。

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使用してLinux上でウェブカメラの設定を変更しましょう。露出、色、フリッカー低減などのサポートされているコントロールを調整し、互換性のあるビデオモードを確認できます。

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールするには、JetBrains Toolboxを使用するか、スタンドアロンのtar.gzアーカイブを使用するか、SnapおよびArch AURオプションを選択してください。Javaは既にバンドルされています。

LinuxにCisco Packet Tracerをインストールする方法

LinuxにCisco Packet Tracerをインストールする方法

Cisco Packet Tracer 9.0.1 を Ubuntu 64 ビット版にダウンロードし、APT を使用して DEB パッケージをインストールし、ターミナルでライセンスに同意してサインインすると、ラボを開始できます。

LinuxでCD-ROMをISOイメージとしてバックアップする方法

LinuxでCD-ROMをISOイメージとしてバックアップする方法

Linux上でGNOME Disksまたはddコマンドを使用してCD-ROM ISOイメージを作成します。光学ドライブを識別し、コピーを監視し、イメージを検証し、破損したディスクやオーディオディスクに別のツールが必要な場合を把握できます。

XFCE 4でデュアルパネルを設定する方法

XFCE 4でデュアルパネルを設定する方法

各ディスプレイごとに個別のXFCE 4パネルを作成し、2番目のパネルを右側の出力に割り当て、位置とサイズを調整し、必要なランチャーとステータス項目を追加します。

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って写真の背景を削除する方法:被写体をトレースし、選択した背景を削除し、透明度を保持して、再利用可能なPNG形式でエクスポートします。

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearは公式サイトから無料でダウンロードできます。Windows、macOS、Linuxの各パッケージを比較し、データファイルをインストールして、最初のフライトを開始しましょう。

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSamplerはMP3クリップをキーボードのキーにマッピングし、音声をループ再生できます。この旧型フリーウェアの機能、旧機能が失われた箇所、ダウンロード前に確認すべき点について解説します。