ファブリックを使用してシステム管理の自動化に取り組んでおり、特定のマシンでアップグレードする必要のあるパッケージの数を監視できるようにしたいと考えています。これは、最初にマシンにログインしたときに表示される情報と同じ情報です。つまり、この部分です。
35 packages can be updated.
22 updates are security updates.
その情報を提供するコマンドを実行できますか(できればSudo
なしで)。
私はapt-pythonバインディングを見てきましたが、それらは高度な学習曲線を持っているようであり、また多くの点で変更されているように見えます-私は少なくとも、 Ubuntuのバージョンごとに異なることを行います。
その出力を取得するには、次のコマンドを使用できます
Sudo /usr/lib/update-notifier/update-motd-updates-available
または、Sudo
を使用したくない場合は、
cat /var/lib/update-notifier/updates-available
login
アプリケーションは、/etc/motd
へのシンボリックリンクである/var/run/motd
ファイルで見つかった出力を表示します。
この最後のファイルは、mounted-varrun
のすべてのスクリプトを呼び出す/etc/init/mounted-varrun.conf
サービス(/etc/update-motd.d/
を参照)によって更新され、特に
/etc/update-motd.d/90-updates-available
それは順番にスクリプトを呼び出します
/usr/lib/update-notifier/update-motd-updates-available
このスクリプトはさまざまなアクションを実行し、最後に出力をテキストファイルに書き込みます
/var/lib/update-notifier/updates-available
編集
質問の再起動部分については、このコマンドを実行します
/usr/lib/update-notifier/update-motd-reboot-required
再起動が不要な場合は出力されません。
なぜこれを実行できないのですか?
/usr/lib/update-notifier/apt-check --human-readable
これは、少なくとも私が使用しているUbuntu(12.10)のバージョンでは、/ usr/lib/update-notifier/update-motd-updates-availableが情報を収集するために行うことです。
/usr/lib/update-notifier/apt-check
でコメントを見つけたときに、最小限のdockerコンテナー内の更新チェックのためのscripredメソッドも検索します。
apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst
これにより、update-notifier-common
パッケージをインストールする必要なく、スクリプト化された更新チェックが可能になります。
check_apt
からmonitoring-plugins-basic
プラグインを使用できます(Nagios)。更新の有無に応じて異なるリターンコードを取得できるという利点があります。ご利用いただけます:
$ /usr/lib/nagios/plugins/check_apt
APT WARNING: 18 packages available for upgrade (0 critical updates). |available_upgrades=18;;;0 critical_updates=0;;;0
$ echo $?
1
戻りコードの意味は次のとおりです。
0
->アップグレード可能なパッケージはありません1
->アップグレードに使用できる重要ではないパッケージ2
->利用可能な重要な更新参照: