Hallo zusammen,
ich bin ziemlich frisch was die Shell Programmierung anbetrifft. Ich bin eigentlich mehr in der SAP Basis unterwegs und weniger in der Entwicklung. Im Einsatz haben wir ein SLES System im Einsatz und hier muss hin und wieder ein Prozess neugestartet werden. Da ich durch mein Studium ein wenig Programmier-Erfahrungen gesammelt im Java Umfeld denke ich, dass ich mich zu diesem Thema schon "hineinarbeiten" kann 😉
Das Programm hat folgenden Ablauf, welches alle 10 Minuten im crontab/cronjob laufen soll:
1. Schritt: Log-Datei finden über Befehl: find / -name backint.log -ls
2. Schritt: Vom 1. Ergebnis den Pfad verwenden ggf. in eine Variable abspeichern log_path
3. Schritt: Log Datei (log_path) auslesen über Befehl (letzte 30 Zeilen): tail -30 log_path
4. Schritt: Nach Textstelle suchen XX steht für eine Zahl: "Backint exited with Signal 01" = in Variable abspeichern: exit_signal
5. Schritt: String mit String vergleichen, wenn ausgelesener String mit vorgegebenen String gleich ist:
If-Statement: If exit_signal equals "Backint exited with Signal 01" do: ps -ef | grep prole | grep -v grep
6. Schritt: do: extrahiere Prozessnummer aus Schritt 5 und kill <Prozessnummer>
7. Schritt: else if exit_signal !equals "Backint exited with Signal 01" Do Nothing
Rein von der Logik her müsste das so funktionieren. Könnt ihr mir hierbei Tipps geben was ich hier beachten sollte? Ich stelle mir die Parts, wo ich Bash Befehle in der Console abfeuere etwas komplexer vor, weil ich auf das Ergebnis quasi irgendwie zugreifen muss. Also als Beispiel: find / -name backint.log -ls → von dem Ergebnis möchte ich das erste Suchergebnis in einer Variable abspeichern können (siehe Screenshot).
Ich danke euch im vorraus!
shellig