Sysinfo auf Wallpaper automatisch erstellen
Betreut man mehrere Systeme und greift dabei auf FreeNX oder VNC zurück, kann es mit unter schwierig sein den Überblick zu behalten, auf welchem System man sich gerade befindet. Ein Überblick über die Maschine bzw. den Client-Rechner ist hierbei sehr hilfreich.
Für den Endanwender gibt es Paket Screenlets mit dem man viele ansprechende Zusatzprogramme einbinden kann. So können mit InfoPanel sehr umfangreiche Systeminformationen am Bildschirmhintergrund dargestellt werden. Das Paket zielt vermutlich, wie auch alle anderen erhältlichen Sreenlets auf den, vermutlich auf die grosse klicky-bunty-Welt ab. Die Programmvoraussetzungen und die im Betrieb mit einhergehenden (unnützen) Belastung/Belegung der Systemressourcen werfen natürlich Fragen auf, ob dies nicht mit einfacheren Mitteln zu bewerkstelligen ist.
Informationen
Werte
Für die ressourcenschonende Realisierung der Anforderungen im SOHO wurde daher folgender Lösungsweg eingeschlagen. Auf dem Bildschirmhintergrund werden die wichtigsten Systeminformationen angezeigt:
- Hostname
- CPU
- Speicher
- OS-Version
- Kernel-Version
- IP-Adresse(n)
- Bootzeitpunkt
Beispiel
Software
Paket zur Bildbearbeitung
Die Texte mit Hilfe des Programmes convert aus dem RPM-Paket ImageMagic in einen vorhandenen Bildschirmhintergrund eingefügt. Sofern noch nicht bei der Erstinstallation geschehen, installieren wir uns das Programpaket zur Bildmanipulation.
# yum install ImageMagick -y
Script zur Bilderstellung
Für die „Einblendung“ der gewünschten Systeminformationen bedienen wir uns eines einfachen bash-scrips. Dieses Script legen wir unter /usr/local/bin/ ab, bzw laden es uns direkt aus dem Dokuwiki herunter.
# vim /usr/local/bin/sysinfo4wp
- /usr/local/bin/sysinfo4wp
#!/bin/bash ############################################################################## # Script-Name : sysinfo4wp # # Description : Script zur Erstellung eines Bildschirmhintergrundes mit # # den wichtigsten Systemparametern # # # # Last update : 2012-01-05 # # Version : 0.02 # ############################################################################## ############################################################################## # H I S T O R Y # ############################################################################## # Version : 0.01 # # Description : initial release # # -------------------------------------------------------------------------- # # Version : 0.02 # # Description : Bootzeitpunktberechnung berücksichtigt, Dank an fischi # ############################################################################## # Definition der Variablen FILE="/usr/share/backgrounds/default.jpg" # Bildschirmhintergrund in dem die Ausgabe eingebettet werden soll WALLPAPER="/usr/share/backgrounds/new_blue.jpg" # Name unseres neu erstellten Bildschirmhintergrundes TMPFILE="/tmp/sysinfo_4_WP" PRG=/usr/bin/convert # Variablen für die ermittelten Parameter HOST=$(hostname) RELEASE=`cat /etc/redhat-release` KERNEL=`uname -r` KERNELVERSION="Linux Version "$KERNEL IPT=$(/sbin/ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1) IPADRESSET="IP Adresse (eth0): "$IPT # ggf. weitere Netzwerkschnittstellen definieren #IPU=$(/sbin/ifconfig ppp0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1) #IPADRESSEU="IP Adresse (ppp0): "$IPU UPTIME=`uptime | grep '' /proc/uptime | awk '{ print $1 }'` UPTIME=`echo "$UPTIME" | sed 's/\(.*\)...$/\1/'` let BOOTDATE=`date +%s`-$UPTIME BOOTDATE="Bootzeitpunkt: "`date -d @$BOOTDATE "+%d.%m.%y - %H:%M Uhr"` CPU_COUNT=`cat /proc/cpuinfo | grep -cA 0 processor` CPU_MODEL=`cat /proc/cpuinfo | grep -m 1 model.name | sed 's/^model.name*.:*.//'` CPU_SPEED=`cat /proc/cpuinfo | grep -m 1 cpu.MHz | sed 's/^cpu.MHz*.:*.//' | sed 's/^:*.//'` CPU="$CPU_COUNT x $CPU_MODEL" MEM=`grep MemTotal /proc/meminfo` # Hintergrundbild erstellen $PRG -gravity southwest -fill white -pointsize 35 -draw 'text 50,320 Systemübersicht' $FILE $WALLPAPER $PRG -gravity southwest -fill white -pointsize 30 -draw "text 50,270 '$HOST'" $WALLPAPER $WALLPAPER $PRG -gravity southwest -fill white -pointsize 20 -draw "text 50,230 '$CPU'" $WALLPAPER $WALLPAPER $PRG -gravity southwest -fill white -pointsize 20 -draw "text 50,200 '$MEM'" $WALLPAPER $WALLPAPER $PRG -gravity southwest -fill white -pointsize 20 -draw "text 50,160 '$RELEASE'" $WALLPAPER $WALLPAPER $PRG -gravity southwest -fill white -pointsize 20 -draw "text 50,135 '$KERNELVERSION'" $WALLPAPER $WALLPAPER # ggf. weiters Netzwerkinterface anzeigen lassen #$PRG -gravity southwest -font /usr/share/fonts/bitstream-vera/VeraBd.ttf -fill white -pointsize 20 -draw "text 50,110 '$IPADRESSEU'" $WALLPAPER $WALLPAPER $PRG -gravity southwest -fill white -pointsize 20 -draw "text 50,85 '$IPADRESSET'" $WALLPAPER $WALLPAPER $PRG -gravity southwest -fill white -pointsize 20 -draw "text 50,50 '$BOOTDATE'" $WALLPAPER $WALLPAPER
Anschliessend statten wir das Script mit den x-Rechten aus.
# chmod +x /usr/local/bin/sysinfo4wp
Wenn wir nun das Script das erste mal von Hand starten können wir das Ergebnis ansehen und überprüfen, ob die Ausgabe unseren Wünschen entspricht.
# sysinfo4wp
# eog /usr/share/backgrounds/new_blue.jpg
Sofern alles passt, aktivieren wir unseren neuen Desktop-Hintergrund, mit einem rechten Mausklick auf dem Desktop-Hintergrund.
automatische Erstellung
Damit nun beim Booten automatisch der gewünschte Bildschirmhintergrund erstellt wird, ist es nötig unser bash-script /usr/local/bin/sysinfo4wp beim Booten der Maschine auszuführen. Hierzu ergänzen wir einfach die Datei rc.local im Verzeichnis /etc/rc.d/
# vim /etc/rc.d/rc.local
# Django: automatisch generiertes Wallpaper mit Systeminformationen versorgen # eingefügt am 2011-07-25 /usr/local/bin/sysinfo4wp