¿Cómo monitorear la memoria usada y el correo cuando está por encima del umbral?

2

Tengo un servidor Linux. Me gustaría monitorear la cantidad de uso de memoria y si está por encima de cierto umbral (digamos 512 MB), haga que envíe un correo electrónico al administrador automáticamente.

¿Cómo puedo hacer eso?

Roger W.
fuente

Respuestas:

1

Puede obtener el uso de memoria a través del freecomando. Un pequeño análisis de su salida le dará la memoria utilizada actualmente:

free -m | awk '/buffers\/cache/ {print $3}'

Luego, puede enviar un correo electrónico utilizando el mailcomando (suponiendo que la cadena de correo ya esté configurada en su servidor):

echo -e "Mail content." | mail -s "Subject" "[email protected]"

Con esto, puede escribir un pequeño shscript para verificar el uso de la memoria y enviar correo si es necesario:

#!/bin/sh
memuse=$(free -m | awk '/buffers\/cache/ {print $3}')
if [ $memuse -ge 512 ]; then
    message="RAM limit exceeded in server alpha.\nCurrent use is $memuse MiB."
    echo -e "$message" | mail -s "RAM monitoring" "[email protected]"
fi

Ahora, solo necesita ejecutar este script periódicamente. Podemos, por ejemplo, usarlo cronpara ejecutarlo cada minuto, agregando a /etc/crontab:

* * * * * /root/ram_monitoring.sh

(suponiendo que haya guardado el script /root/ram_monitoring.shy que tenga un cron deamon en funcionamiento).

Levans
fuente
obtengo "buffers / cache:" como la salida del primer comando. ¿alguna idea?
Roger W.
De hecho, tuve un error, no lo es , $2pero $3lo corregiré.
Levans