A veces nos conviene poder guardar en una variable el resultado de ejecución de un comando, ya sea para formar una salida más atractiva o para hacer cálculos sobre un dato en concreto, bash nos lo pone muy sencillo de forma similar a como lo realiza la función “eval” de PHP podemos realizarlo, para este ejemplo yo usaré este comando y lo guardaré en una variable:

cat /var/log/php/php_errors.log | grep "PHP Fatal error" | wc -l
La salida de este comando es el número de líneas que contienen el texto “PHP Fatal error” es un número, para guardarlo en una variable sencillamente lo tenemos que escribir así:
#! /bin/bash
ERRORES=$(cat /var/log/php/php_errors.log | grep "PHP Fatal error" | wc -l)
echo 'Numero de Fatal errors:' $ERRORES

Podríamos por ejemplo generar un email con el número de errores fatal, warning y notice y hacérselo llegar al admin cuando superen una cifra y que así pueda revisar si existe algun problema en el servidor, el script quedaría así:

#! /bin/bash

UMBRAL_AVISO_FATAL=1

FATAL=$(cat /var/log/php/php_errors.log | grep "PHP Fatal error" | wc -l)
WARNING=$(cat /var/log/php/php_errors.log | grep "PHP Warning" | wc -l)
NOTICE=$(cat /var/log/php/php_errors.log | grep "PHP Notice" | wc -l)

if [ $FATAL -ge $UMBRAL_AVISO_FATAL ]
then

TXTMAIL="Se ha excedido el número de errores fatales permitidos, ";
TXTMAIL="$TXTMAIL este es el resumen del estado del fichero php_errors.log";
TXTMAIL="$TXTMAIL Errores fatales: $FATAL, Warning: $WARNING y NOTICE: $NOTICE ";

fi

echo $TXTMAIL
/bin/mail -s "Limite erroes superado" "[email protected]" < $TXTMAIL

Este comando se podría configurar en un cron horario y así poder monitorizar el estado del servidor de modo desatendido.