it-swarm.com.de

Wie finde ich die Anzahl der zu aktualisierenden Pakete über die Befehlszeile?

Ich arbeite an einer Systemadministrationsautomatisierung mit Fabric und möchte die Anzahl der Pakete überwachen können, die auf einem bestimmten Computer aktualisiert werden müssen. Dies sind die gleichen Informationen, die ich sehen kann, wenn ich mich zum ersten Mal bei einem Computer anmelde, d. H. Dieser Teil:

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

Gibt es einen Befehl, den ich ausführen kann (vorzugsweise ohne Sudo), der genau diese Informationen liefert?

Ich habe mir die Apt-Python-Bindungen angeschaut, aber sie scheinen eine hohe Lernkurve zu haben und sie scheinen sich auch sehr zu verändern - ich hätte gerne etwas, das zumindest so weit wie klar funktioniert, ohne es zu müssen verschiedene Dinge auf verschiedenen Ubuntu-Versionen tun.

34
KayEss

Um diese Ausgabe zu erhalten, können Sie den Befehl verwenden

Sudo /usr/lib/update-notifier/update-motd-updates-available

oder, wenn Sie Sudo nicht verwenden möchten,

cat /var/lib/update-notifier/updates-available

Erläuterung

Die Anwendung login zeigt die Ausgabe in der Datei /etc/motd an, die eine symbolische Verknüpfung zu /var/run/motd darstellt.

Diese letzte Datei wird vom Dienst mounted-varrun (siehe /etc/init/mounted-varrun.conf) aktualisiert, der alle Skripten in /etc/update-motd.d/ aufruft, insbesondere

/etc/update-motd.d/90-updates-available

das ruft wiederum das Skript auf

/usr/lib/update-notifier/update-motd-updates-available

dieses Skript führt verschiedene Aktionen aus und schreibt die Ausgabe zuletzt in die Textdatei

/var/lib/update-notifier/updates-available

EDIT

Führen Sie in Bezug auf den Neustart-Teil der Frage diesen Befehl aus

/usr/lib/update-notifier/update-motd-reboot-required

es wird keine Ausgabe ausgegeben, wenn kein Neustart erforderlich ist.

33
enzotib

Warum kannst du das nicht einfach ausführen?

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

Das ist, was/usr/lib/update-notifier/update-motd-updates-available tut, um die Informationen zu sammeln, zumindest in der von mir verwendeten Ubuntu-Version (12.10).

21
Tom Barron

Ich suche auch nach einer Scripred-Methode für eine Aktualisierungsprüfung in minimalen Docker-Containern, als ich in /usr/lib/update-notifier/apt-check einen Kommentar fand:

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

Dies ermöglicht eine Überprüfung von Updates per Skript, ohne dass das update-notifier-common -Paket installiert werden muss

3
Simon Sudler

Sie können das check_apt -Plugin von monitoring-plugins-basic ( Nagios ) verwenden, mit dem Vorteil, dass Sie unterschiedliche Rückkehrcodes erhalten, je nachdem, ob Aktualisierungen durchgeführt werden stehen zur Verfügung:

$ /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

Rückkehrcodes haben folgende Bedeutung:

  • 0 -> Keine Pakete für das Upgrade verfügbar
  • 1 -> Nicht kritische Pakete für das Upgrade verfügbar
  • 2 -> wichtige Updates verfügbar

Verweise:

0
Clauz