Datum bei Log-Eintrag

So guten Morgen euch,

hab den Skript bis auf Eines noch fertig, hab eine Abfrage drin, welche prüft, ob der Dienst, nach dem Start, auch tatsächlich gestartet ist, und falls dies nicht der Fall ist, soll er die Meldung in das Error-Log schreiben (von Exit-Codes bin ich inzwischen weg gekommen, da ich diese nicht weiter abfrage), doch ich bekomm es maximal hin, das es in das Standardlog, "Tivoli.out", statt in mein "Fehlerlog" geht.

Auruf:
Code:
Tivoli_Endpoint.sh >>Tivoli.out 2>>Tivoli_err.out

Skriptfragment:
Code:
#prüfen ob der Start geklappt hat usw.
MYID_2=$(ps ax | grep "lcfd" | grep -v grep | awk {'print $1'});
if [ -n $MYID_2 ];
then
echo $(date) Der lcfd-Dienst wurde mit ID $MYID_2 gestartet.;
else
echo 2>> Tivoli_err.out $(date) FEHLER. Der lcfd-Dienst wurde nicht gestartet, Skript wird mit Fehlereintrag beendet.;
exit;
fi

So geht er in das Standardlog, wird also gar nicht beachtet. Wenn ich die Umleitung ans Ende stell, kommt mir nur ein Fehler. Ich weiß nicht wo hin damit, das ich diesen einen Echo-Eintrag in mein Errorlog krieg.

Könnt mir da noch jemand weiterhelfen?

Danke, mfg fire

@wolfgang, nicht schlimm, ich überles auch manchmal ?! *g* was.
@schlaubi Danke für die Erklärung für "Logrotate", hab auch gleich mal gesucht, doch das kann mein System nicht, wobei der Befehl schon toll wäre :-( .
 
Moin,

Dein Versuch:
Code:
#prüfen ob der Start geklappt hat usw.
MYID_2=$(ps ax | grep "lcfd" | grep -v grep | awk {'print $1'});
if [ -n $MYID_2 ];
then
echo $(date) Der lcfd-Dienst wurde mit ID $MYID_2 gestartet.;
else
echo 2>> Tivoli_err.out $(date) FEHLER. Der lcfd-Dienst wurde nicht gestartet, Skript wird mit Fehlereintrag beendet.;
exit;
fi
Versuchs mal bitte so (beachte vor allem auch die Doppelhochkomma!):
Code:
#prüfen ob der Start geklappt hat usw.
MYID_2="$(ps ax | grep "lcfd" | grep -v grep | awk {'print $1'})";
if [ -n "$MYID_2" ];         # meiner Meinung nach sind die Doppelhochkomma hier essenziell
then
echo "$(date) Der lcfd-Dienst wurde mit ID $MYID_2 gestartet.";
else
echo >&2 "$(date) FEHLER. Der lcfd-Dienst wurde nicht gestartet, Skript wird mit Fehlereintrag beendet.";
exit;
fi 2>> Tivoli_err.out
 
Hallo Leute,

ja ihr merkt es bestimmt schon, ich bin nun fertig, das Skript ist getestet, im Einsatz und es funktioniert alles so wie es soll.
Danke an euch, die ihr mir geholfen habt, besonders an Schlaubi und Wolfgang.
Im Anhang nun das fertige Skript.
MFG
fire

P.S. Hoffe, das ich mich das nächste Mal wieder an euch wenden darf ;-) .

Code:
#Skript startet und stoppt den lcfd (Tivoli) Dienst um eine Inventarisierung der
#Hardware über das Dezentrale Systemmanagement zu ermöglichen.
#Erstellt von [I]firedraggon[/I] mit Unterstützung von Unixboard.de, 23.04.2007 Version 1.1

#Verwendete Datei: Tivoli.sh
#Logdateien: Tivoli.out für die Standardausgabe und Tivoli_err.out für die Fehlerausgabe
#Archivdateien für die Standard- und Fehlerausgabe: Tivoli.out.arch und Tivoli_err.out.arch

#Skript startet und wartet eine zufällige Zeit ab, bis eigentliche Ausführung beginnt,
#da der Skript als Cronjob unter root-Rechten läuft und niemand darüber informiert sein soll,
#wann dies der Fall ist.

PATH=/usr/bin:/opt/Tivoli/lcf/dat/1;
MYID="$(ps ax|grep "lcfd"| grep -v grep | awk {'print $1'})";
SIZE=0;

sleep $RANDOM;
echo $(date) Das Skript \"Tivoli_Endpoint.sh\" wird nun ausgeführt.;

#Es werden die Logdateien "Tivoli.out" und "Tivoli_err.out" auf ihre Größe überprüft und ab 8000 Bytes archiviert.
for FILE in Tivoli.out Tivoli_err.out;
do
if [ -e $FILE ];
then
SIZE=$(wc -c $FILE | awk '{print $1}');
echo $(date) Die Datei \"$FILE\" existiert und die Größe wurde bestimmt.;
else
echo $(date) Die Datei \"$FILE\" existiert nicht.;
fi

if [ $SIZE -gt 8000 ];
then
mv $FILE $FILE.arch;
echo $(date) Die Datei \"$FILE\" hat 8000 Byte überschritten und wurde archiviert.;
else
echo $(date) Die Datei \"$FILE\" hat eine Größe von $SIZE Byte und wurde nicht bereinigt.;
fi
done

#Prüfung, ob lcfd-Dienst gestartet ist, oder nicht.
if [ -n "$MYID" ];

then
kill $MYID;
echo $(date) Der lcfd-Dienst war bereits aktiv und wurde beendet.;
echo $(date) Der Skript wird beendet.;
exit;

else
echo $(date) Der lcfd-Dienst läuft nicht und wird gestartet.;
/opt/Tivoli/lcf/dat/1/lcfd.sh
fi

#prüfen ob der Start geklappt hat usw.
MYID_2="$(ps ax | grep "lcfd" | grep -v grep | awk {'print $1'})";
if [ -n "$MYID_2" ];
then
echo "$(date) Der lcfd-Dienst wurde mit ID $MYID_2 gestartet.";
else
echo >&2 "$(date) FEHLER. Der lcfd-Dienst wurde nicht gestartet, das Skript wird mit einem Fehlereintrag beendet. E-Mail an \"[I]E-Mail Name[/I]\" wird versc
hickt.";
echo Fehlerhinweis am $(date)!\\nDer lcfd-Dienst wurde nicht gestartet, somit konnte die monatliche Inventarisierung nicht vorgenommen werden. Bitte prüfen
.\\nDie E-Mail wurde durch das Script \"Tivoli_Endpoint.sh\" erstellt. | mail -s "Fehlerhinweis! Der lcfd-Dienst wurde auf $(hostname) nicht gestartet." [I]E-Mail Postfach[/I];
exit;
fi 2>> Tivoli_err.out

#Dienst läuft und Programm wird nach 10 Minuten beendet
sleep 600;
kill $MYID_2;
echo $(date) Der lcfd-Dienst wurde wieder beendet.;
echo $(date) Das Skript wurde beendet.;

Nachtrag 24.04.07 10:16 Uhr:
Hatte noch eine Fehlermeldung, welche auf den Test-Command zurückzuführen war, habe den Code entsprechend ergänzt, so das er nun ohne Fehlermeldung durchläuft. Was so ein paar kleine "" nicht alles ausmachen können *g*.
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

Server-Monitoring mit RRDTool

RedHat 4 (Lineox 4) in VMware mit BusLogic Treiber

Zurück
Oben