長らくDebianのサーバーが自動更新できていなかったことが判明

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

これまで、このブログを運用しているサーバーについて、自動更新をかけているはずなのに、実際にはかかっておらず、手動で更新をする羽目になっていた件について、ようやく原因を特定できて、更新できるようになった。

これまでの状況

これまでは、『セキュリティーアップデートを自動化する方法』(サーバーエンジニアブログ)の記事を参考に、当該記事とほぼ同様の内容の設定をしていた。違いとしては、aptのコマンドとしてapt-getではなく、aptitudeを使っていたことと、ソースリストのファイルの違いくらいである。

更新できていなかった原因

less /var/log/apt/logで確認する限り、--no-list-cleanupというオプションが使えないということが判明した。ログとしては以下のような状態となった。

/usr/bin/aptitude -o quiet=1 --no-list-cleanup -o Dir::Etc::SourceList=/etc/apt/sources.list -o Dir::Etc::SourceParts="/dev/null" update -o quiet=2
/usr/bin/aptitude: unrecognized option '--no-list-cleanup'
aptitude 0.6.11
...

なお、この問題はaptitudeapt-getに変更しても解消しないことが判明した。

修正方法

最終的には、各種設定ファイルを以下のように編集した。

/etc/cron-apt/config

# Configuration for cron-apt. For further information about the possible
# configuration settings see /usr/share/doc/cron-apt/README.gz.

APTCOMMAND=/usr/bin/aptitude
ACTIONDIR="/etc/cron-apt/action.d"
MAILTO="(メールアドレス)"
MAILON="always"
SYSLOGON="upgrade"
OPTIONS="-o quiet=1"

/etc/cron-apt/action.d/0-update

update

/etc/cron-apt/action.d/3-download

autoclean -y
dist-upgrade -d -y -o APT::Get::Show-Upgraded=true

/etc/cron-apt/action.d/4-uprade

safe-upgrade -y -o APT::Get::Show-Upgraded=true

とりあえずは、これで動くようにはなった。

最後に

今まで自動更新ができていなかったことに長らく気づいていなかったのはかなりまずかったが、その原因がわかり、対処できたことでなんとか問題は解消されたのだろうと考えている。

もし、DebianやUbuntuでの自動アップグレードがうまくいかないようであれば、まずは/var/log/cron-apt/logを確認して、問題があれば修正してみると良いだろう。

タイトルとURLをコピーしました