Hi alle zusammen!
Ich habe, wie in diesem Thread bereits beschrieben,: http://www.linux-club.de/viewtopic.php?f=21&t=103478 ein Problem mit der Textformatierung, innerhalb eines Scripts, mit Hilfe von printf.
Es handelt sich dabei um folgendes Script:
Das Script bricht mit folgender Fehlermeldung ab:
Daraufhin habe ich den Vorschlag von revealed ausprobiert:
Zitat von revealed:
Das funktioniert bei mir auch! Daraufhin habe ich folgendes probiert:
Das heist, dass das Problem bei der Formatierung des Textes mit printf liegt! Was mach ich falsch? Habt ihr Ideen dazu?
Ich würde den Text gerne so formatiert angezeigt bekommen:
Vielen Dank im Voraus!
Beste Grüße,
noms
Ich habe, wie in diesem Thread bereits beschrieben,: http://www.linux-club.de/viewtopic.php?f=21&t=103478 ein Problem mit der Textformatierung, innerhalb eines Scripts, mit Hilfe von printf.
Es handelt sich dabei um folgendes Script:
Code:
#! /bin/bash
# Mit diesem Script kann man ein E-Mail mit den Statusinformationen
# des Nagiosrechners versenden.
DATE=$(date)
NAGIOSPROC=$(/usr/local/nagios/libexec/check_nagios -e 5 -F /usr/local/nagios/var/nagios.log -C /usr/local/nagios/bin/nagios)
LOAD=$(/usr/local/nagios/libexec/check_load -w 5.0,4.0,3.0 -c 10.0,6.0,4.0)
USERS=$(/usr/local/nagios/libexec/check_users -w 20 -c 50)
HTTP=$(/usr/local/nagios/libexec/check_http -H localhost)
PING=$(/usr/local/nagios/libexec/check_ping -H localhost -w 3000.0,80% -c 5000.0,100% -p 5)
DISK=$(/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /)
SSH=$(/usr/local/nagios/libexec/check_ssh -H localhost -p 2323)
SWAP=$(/usr/local/nagios/libexec/check_swap -w 20 -c 10)
PROCS=$(/usr/local/nagios/libexec/check_procs -w 250 -c 400 -s RSZDT)
/usr/bin/printf "################################################################\n\
#%62s#\n#%3sServerleistungsbericht vom $DATE%3s#\n#%62s#\n################################################################\n\n\n\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\
%3s*** Statusinformation des Nagiosprozesses ***\n\n\
%3sNAGIOS-INFO:
%3s$NAGIOSPROC\n\n\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n\
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n\
%3s*** Allgemeine Informationen ***\n\n\
%3sLOAD:\n%3sLOAD $LOAD\n\n\
%3sUSERS:\n%3s$USERS\n\n\
%3sHTTP:\n%3s$HTTP\n\n\
%3sPING:\n%3s$PING\n\n\
%3sDISK:\n%3s$DISK\n\n\
%3sSSH:\n%3s$SSH\n\n\
%3sSWAP:\n%3s$SWAP\n\n\
%3sPROCS:\n%3s$PROCS" | /usr/bin/mailx -a 'From: "Nagios" <nagios-test@yahoo.de>' -s "*** Prozessstatus Nagios ***" nagios-test@gmx.net
Das Script bricht mit folgender Fehlermeldung ab:
Code:
/usr/bin/printf: %,: ungültige Umwandlungsangabe
Daraufhin habe ich den Vorschlag von revealed ausprobiert:
Zitat von revealed:
#! /bin/sh
# ( Pfad bei mir anders: ! ):
disktest="$( /usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /; )";
diskt2="$( /usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /; )";
diskt3="$( /usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /; )";
# hm?
/usr/bin/printf "%3s %5s \n \n" "*" "$disktest";
/usr/bin/printf "%10s %10s \n \n" "*" "$diskt2";
/usr/bin/printf "%20s %20s \n \n" "*" "$diskt3";
Das funktioniert bei mir auch! Daraufhin habe ich folgendes probiert:
Code:
test@nagios:~$ DISK=$(/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /)
test@nagios:~$ echo $DISK
DISK OK - free space: / 32171 MB (91% inode=94%);| /=3139MB;37180;37190;0;37200
test@nagios:~$ /usr/bin/printf "%3sDISK:\n%3s" "$DISK" "\n\n"
DISK OK - free space: / 32171 MB (91% inode=94%);| /=3139MB;37180;37190;0;37200DISK:
Das heist, dass das Problem bei der Formatierung des Textes mit printf liegt! Was mach ich falsch? Habt ihr Ideen dazu?
Ich würde den Text gerne so formatiert angezeigt bekommen:
Code:
DISK:
DISK OK - free space: / 32171 MB (91% inode=94%);| /=3139MB;37180;37190;0;37200
Vielen Dank im Voraus!
Beste Grüße,
noms