script manejo lista ejemplos completa comandos comando cadenas basicos linux logfiles shell

linux - manejo - Shellscript para monitorear un archivo de registro si la palabra clave se dispara y luego ejecuta un comando?



lista completa de comandos linux pdf (5)

Batter y simple:

tail -f log.txt | egrep -m 1 "error" echo "Found error, do sth." ...

¿Hay alguna manera económica de monitorear un archivo de registro como tail -f log.txt , y luego, si aparece algo como [error] , ejecute un comando?

Gracias.


También encontré que puedes usar awk para monitorear el patrón y realizar alguna acción cuando se encuentra el patrón:

tail -fn0 logfile | awk ''/pattern/ { print | "command" }''

Esto ejecutará el comando cuando se encuentre el patrón en el registro. El comando puede ser cualquier comando de Unix, incluidos los scripts de shell o cualquier otra cosa.


Un enfoque aún más robusto es monit . Esta herramienta puede monitorear muchas cosas, pero una de ellas es que rastreará fácilmente uno o más registros, combinará contra expresiones regulares y luego activará un script. Esto es particularmente útil si tiene una colección de archivos de registro para ver o más de un evento para activar.


Solución automatizada simple que cubre una gran cantidad de escenarios:

USO:

logrobot localhost [default-dir],fixer,[exit-codes],[command/script-to-run-per-exit-code] [feature] [logfile] [age] [str-1] [str-2] [WARN] [CRIT] [tag] [option]

EJEMPLO:

logrobot localhost /tmp/logXray,fixer,0y-1y-2y,0-uname,1-who,2-uptime autonda /var/log/kern.log 60m ''error'' ''.'' 1 2 app_err_monitor -ndshow

Con esta herramienta, puede monitorear patrones específicos en un archivo de registro y luego activar un comando o script cuando los patrones se encuentran ... ¡o NO se encuentran!

Los scripts o comandos se pueden configurar para que se ejecuten en función de los umbrales y los códigos de salida.

La herramienta se puede descargar directamente here .


tail -fn0 logfile | / while read line ; do echo "$line" | grep "pattern" if [ $? = 0 ] then ... do something ... fi done