Apt | Aktualisierungen anzeigen lassen
Für ein kleines Script, welches ich auf der Arbeit verwende, habe ich versucht einen Weg zufinden, zu prüfen ob Kernel-Updates verfügbar sind. Im Netz und in der Man-Page von apt-get bzw aptitude wurde ich nicht eindeutig fündig. Nach langem suchen ergaben sich allerdings folgende Möglichkeiten Updates anzeigen zulassen:
apt-get --just-print upgrade
apt-get -s upgrade
aptitude search ~U
Ich fand allerdings die erste Möglichkeit am einleuchtensten.
Die Ausgabe ist zwar nicht zwingend Script geeignet, aber das lässt sich ja ändern:
SUPDATEKERNEL=$(ssh root@$host "apt-get --just-print upgrade | grep linux | uniq | wc -l")
In der Variable $SUPDATEKERNEL steht logischerweise die Anzahl der Verfügbaren Updates die “linux” enthalten. Linux fand ich persönlich jetzt am einfachsten zur Identifikation von Kernel-Updates. Jemand bessere Vorschläge?









February 20th, 2010 at 20:59
Eventuell wäre noch eine Notification per ‘notify-send’ und/oder ein Tray-Icon mit ‘zenity –notification’ möglich.
killermoehre
February 20th, 2010 at 21:10
Mit python-apt sollte diese Abfrage auch möglich sein, wenn man sein Script in Python schreiben möchte.
February 20th, 2010 at 21:51
@killermoehre ja darüber hab ich auch schon nachgedacht. aber ob ich das bei 200 maschinen haben will ?
@benjamin: ja mit sicherheit. aber das wäre bisschen overkill.
February 20th, 2010 at 21:55
@Benjamin: Deine Aussage ist ca. so sinnvoll wie die folgende: “Wenn du das alles ganz anders machst, kannst du das alles auch ganz anders machen.”
February 20th, 2010 at 22:00
Wenn die Maschinen alle das gleiche laufen haben, dann braucht es doch nur auf einer überprüft zu werden, weil ja alle auf die selbe Paketquelle zugreifen.
killermoehre
February 21st, 2010 at 11:01
Im Grunde hast du recht. Aber ich möchte dich hier weder mit Firmeninterna Sachen aufklären, noch das restliche UpgradeSystem erläutern. Hauptgrund ist aber, dass mehrere Leute upgraden.
Das eigentliche Script, ist auch ganz anders als du dir das gerade vorstellst
February 22nd, 2010 at 15:20
Nö, “linux” ist keine gute Wahl, gibt bestimmt hundert Paketnamen, die das auch enthalten und kein Kernel sind. Ich würde “aptitude search ‘~U ~m”Ubuntu Kernel Team” linux’” empfehlen. Mit -F kannst du das Ausgabeformat ändern, nur scheint das unnötig zu sein, du willst ja nur wissen ob es überhaupt eine Ausgabe gab. Du musst also nur prüfen ob etwas nach StdOut geschrieben wird und brauchst die Pipe nicht auszupacken.