注意: この記事は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
...
なお、この問題はaptitude
をapt-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
を確認して、問題があれば修正してみると良いだろう。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。