
Kann mir jemand etwas Licht in die Sache bringen und mir den richtigen Weg weisen?
Ich möchte ein Skript in Bash erstellen, das beim Start der Tomcat-App Ausnahmen in den Protokollen überprüft. Dieses Skript sollte in der Lage sein, die Erstellung neuer Dateien im laufenden Betrieb zu erkennen, möglicherweise über inotify
.
Dieses Skript sollte das Protokollverzeichnis ständig auf neue Zeilen in den Protokolldateien überprüfen und diejenigen schreiben, die die Wörter Exception:
oder ERROR
enthalten /var/log/errorcheckernotifier.txt
.
Wenn das Skript diese Zeile erkennt, INFO: Server startup in
sollte es die Anzahl der beim Start erkannten Ausnahmen TOMCAT IS STARTED
eintragen ./var/log/errorcheckernotifier.txt
Dieses Skript sollte den Inhalt nicht überschreiben errorcheckernotifier.txt
. Hängen Sie ihn stattdessen an.
Wie kann ich dieses Skript möglicherweise am Laufen halten und weitere Starts erkennen, Ausnahmen zählen usw.?
Antwort1
Ich kann Ihnen den „Start“-Teil meiner Tomcat-Init-Skripte geben, falls das hilft.
Start) echo -n "$FOO_BASE_JM wird gestartet" ## Starten Sie den Daemon mit startproc(8). Wenn dies fehlschlägt ## der Rückgabewert wird von startproc entsprechend gesetzt. wenn ps -efwwwwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; dann echo "Prozess $FOO_BASE_JM existiert bereits" rc_fehlgeschlagen 1 anders LOGLINES=$(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l) CATALINA_OPTS exportieren ########/sbin/startproc $FOO_BIN wenn [ "$(id -un)" = "tomcat" ]; dann $FOO_BIN starten || rc_failed 1 anders /bin/su tomcat $FOO_BIN starten || rc_failed 1 fi echo -n "Warten auf das Erscheinen des Prozesses." Gewicht = 0 process_seen=true während ! ps -efwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; machen Schlaf 2 echo -n . Gewicht = $ (($ Gewicht + 1)) wenn [ "$wt" -gt 30 ]; dann Echo echo "Timeout: Der Vorgang kann nicht angezeigt werden. Sie sollten die Protokolle prüfen." rc_fehlgeschlagen 1 process_seen=false brechen fi Erledigt wenn [ "x$process_seen" = "xtrue" ]; dann Echo echo -n "Warten auf den Start." Gewicht = 0 während ! tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: Serverstart"; machen Schlaf 2 echo -n . Gewicht = $ (($ Gewicht + 1)) wenn [ "$wt" -gt 30 ]; dann Echo echo "Timeout: Im Protokoll können keine Anzeichen für einen erfolgreichen Serverstart gefunden werden. Bitte prüfen." rc_fehlgeschlagen 1 brechen fi Erledigt tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: Serverstart" && tail +$LOGLINES /opt/$FO O_BASE_JM/logs/catalina.out | grep "INFO: Serverstart" fi fi # wenn kein Prozess existiert # Merken Sie sich den Status und seien Sie ausführlich rc_status -v ;;
Als Alternative kann ich vorschlagen, ein Überwachungstool wie Nagios zu verwenden, eines seiner Protokollüberwachungs-Plugins auf die Datei catalina.out (oder wohin auch immer Sie sich anmelden) zu richten und nach neuen Fehlerzeichenfolgen oder was auch immer Sie interessiert, zu suchen. Auf unseren Oracle-Datenbanken funktioniert das perfekt.