noqqe » blog | sammelsurium | photos | projects | about

Für ein kleines Script, welches ich auf der Arbeit verwende, habe ich versucht einen Weg zu finden, 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?

Comments (7)

killermoehre on 2010-02-21T00:59:24
Eventuell wäre noch eine Notification per 'notify-send' und/oder ein Tray-Icon mit 'zenity --notification' möglich. killermoehre

Benjamin on 2010-02-21T01:10:25
Mit python-apt sollte diese Abfrage auch möglich sein, wenn man sein Script in Python schreiben möchte.

noqqe on 2010-02-21T01:51:57
@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.

Guest on 2010-02-21T01:55:00
@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."

killermoehre on 2010-02-21T02:00:04
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

noqqe on 2010-02-21T15:01:50
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 :)

adun on 2010-02-22T19:20:09
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.