Ich habe auch herausgefunden, dass Sie awk verwenden können, um Muster zu überwachen und eine Aktion auszuführen, wenn ein Muster gefunden wird:
tail -fn0 logfile | awk '/pattern/ { print | "command" }'
Dadurch wird der Befehl ausgeführt, wenn ein Muster im Protokoll gefunden wird. Der Befehl kann ein beliebiger Unix-Befehl sein, einschließlich Shell-Skripten oder irgendetwas anderem.
tail -fn0 logfile | \
while read line ; do
echo "$line" | grep "pattern"
if [ $? = 0 ]
then
... do something ...
fi
done
Ein noch robusterer Ansatz ist monit. Dieses Tool kann sehr viele Dinge überwachen, aber eines davon ist, dass es einfach ein oder mehrere Protokolle verfolgt, mit regulären Ausdrücken abgleicht und dann ein Skript auslöst. Dies ist besonders nützlich, wenn Sie eine Sammlung von Protokolldateien überwachen oder mehr als ein Ereignis auslösen möchten.