web-dev-qa-db-ja.com

コマンドラインから更新が必要なパッケージの数を見つける方法は?

ファブリックを使用してシステム管理の自動化に取り組んでおり、特定のマシンでアップグレードする必要のあるパッケージの数を監視できるようにしたいと考えています。これは、最初にマシンにログインしたときに表示される情報と同じ情報です。つまり、この部分です。

35 packages can be updated.
22 updates are security updates.

その情報を提供するコマンドを実行できますか(できればSudoなしで)。

私はapt-pythonバインディングを見てきましたが、それらは高度な学習曲線を持っているようであり、また多くの点で変更されているように見えます-私は少なくとも、 Ubuntuのバージョンごとに異なることを行います。

34
KayEss

その出力を取得するには、次のコマンドを使用できます

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

再起動が不要な場合は出力されません。

33
enzotib

なぜこれを実行できないのですか?

/usr/lib/update-notifier/apt-check --human-readable

これは、少なくとも私が使用しているUbuntu(12.10)のバージョンでは、/ usr/lib/update-notifier/update-motd-updates-availableが情報を収集するために行うことです。

21
Tom Barron

/usr/lib/update-notifier/apt-checkでコメントを見つけたときに、最小限のdockerコンテナー内の更新チェックのためのscripredメソッドも検索します。

apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst

これにより、update-notifier-commonパッケージをインストールする必要なく、スクリプト化された更新チェックが可能になります。

3
Simon Sudler

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->利用可能な重要な更新

参照:

0
Clauz