web-dev-qa-db-ja.com

毎週土曜日にのみUbuntuセキュリティアップデートを実行する

クライアントは12.04ボックスで自動セキュリティ更新を有効にしたいと考えていますが、それは週に1回、土曜日のみである必要があります(なぜ私にはわかりません)。

私がする時 dpkg-reconfigure -plow unattended-upgradesそれは毎日です、そして彼らはそれを望んでいません。

これをどのように構成しますか?

7
Simon Fredsted

土曜日にのみ実行することが絶対に重要な場合は、次のようにします。

  1. パッケージanacronを削除します。これによりubuntu-desktopも削除されますが、サーバーではおそらく必要ないことに注意してください。これが必要なのは、そうしないと、Anacronが/etc/cron.weeklyでジョブを実行する曜日を制御できないためです。
  2. ファイル/etc/crontabを編集します。次の行が必要です。

    47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    

    76(土曜日)に変更し、最初の2つの数値(分と時間)を必要に応じて調整します。これにより、/etc/cron.weekly内のすべてのジョブが指定された曜日と時間に実行されます。

  3. ファイル/etc/cron.daily/apt/etc/cron.weekly/aptに移動します。
2

/etc/cron.dailyaptファイルには、次の手順が含まれています。

# Create /etc/apt/apt.conf.d/02periodic file to set your preference.
....
#
#  APT::Periodic::Unattended-Upgrade "0";
#  - Run the "unattended-upgrade" security upgrade script
#    every n-days (0=disabled)
#    Requires the package "unattended-upgrades" and will write
#    a log in /var/log/unattended-upgrades

設定

APT::Periodic::Unattended-Upgrade "7";

これは7日ごとに実行され、金曜日に変更すると、最初のcronの毎日の実行は土曜日の朝になります(デフォルトの/etc/crontabによると午前6:25)。

その時点でマシンがダウンしている場合、スクリプトはシステムが稼働している翌日に実行されます。そして毎週その(新しい)日の後。そうすれば、特定の日に常に稼働しているとは限らないが、必要なものではないマシンで毎週更新を取得できます。

同期が外れることについてできることの1つは、crontabエントリを使用して、スタンプファイル/var/lib/apt/periodic/update-stampに適切にタッチするタッチコマンドを実行することです(つまり、「最後の土曜日の朝に完了」に設定します)。

2
Anthon