Inhaltsverzeichnis

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:

Beispiel

Das ganze sieht dann optisch so aus:

Bildschirmhardcopy mit eingeblendeten Systeminformationen

Bildschirmhardcopy mit eingeblendeten Systeminformationen

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.

Bildschirmhardcopy Ändern des Desktophintergrunds

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

Links