Un script de shell para enviar una alerta por correo electrónico cuando la memoria se agota

Un script de shell para enviar una alerta por correo electrónico cuando la memoria se agota

Un aspecto poderoso de los programas shell de Unix/Linux, como bash. es su increíble soporte para construcciones de programación comunes que le permiten tomar decisiones, ejecutar comandos repetidamente, crear nuevas funciones y mucho más. . Puede escribir comandos en un archivo conocido como script de shell y ejecutarlos colectivamente.

Esto le ofrece un medio confiable y eficaz de administración del sistema. Puede escribir scripts para automatizar tareas, por ejemplo, copias de seguridad diarias, actualizaciones del sistema, etc. cree nuevos comandos/utilidades/herramientas personalizados y más. Puede escribir secuencias de comandos que lo ayuden a mantenerse al día con lo que se desarrolla en un servidor.

Uno de los componentes críticos de un servidor es la memoria ( RAM. , tiene un gran impacto en el rendimiento general de un sistema.

En este artículo, compartiremos un pequeño pero útil script de shell para enviar un correo electrónico de alerta a uno o más administradores del sistema, si la memoria del servidor se está agotando.

Esto Este script es particularmente útil para vigilar Linux VPS. ( Servidores privados virtuales. con una pequeña cantidad de memoria, digamos de aproximadamente 1 GB. (aproximadamente 990 MB. .

Configuración del entorno de prueba

  1. Un servidor de producción CentOS/RHEL 7. con la utilidad mailx. instalada con un servidor de correo postfix en funcionamiento.

freestar.config.enabled_slots.push

Así es como funciona el script alertmemory.sh. primero verifica el tamaño de memoria, luego determina si la cantidad de memoria libre es menor o igual a un tamaño especificado ( 100. MB para el propósito de esta guía), usado como punto de referencia para el tamaño de memoria libre menos aceptable.

Si esta condición es verdadera, generará una lista de los 10 procesos principales que consumen RAM del servidor y enviará un correo electrónico de alerta a las direcciones de correo electrónico especificadas.

Nota. Tendrá que realizar algunos cambios en el script (especialmente en la utilidad de remitente de correo, use las banderas apropiadas) para cumplir con su Linux requisitos de distribución.

Secuencia de comandos de shell para comprobar la memoria del servidor #!/bin/bash ################################################################################################################################################################################################################################################################ ################################################################################################################################################################################################################################################################### ###### #Nombre de la secuencia de comandos: alertmemory.sh #Descripción: envía un correo de alerta cuando la memoria del servidor se está agotando #Args: #Autor: Aaron Kili Kisinga #Email: [email protected] #License: GNU GPL-3 ## ############################################################################################################################################################################################################################################################################################ ################################## ## declarar las variables de correo ## asunto del correo electrónico asunto = “ Alerta de estado de la memoria del servidor. “## enviando correo desde =” [email protected]. “## enviando correo a to = “ [email protected]. ## enviar copia carbón a also_to = “ [email protected]. “## obtén el tamaño total de memoria libre en megabytes (MB) gratis = $ (gratis-mt | grep Total | awk ‘print $ 4’) ## comprueba si la memoria libre es menor o igual a 100 MB. if [[“$ free”-le 100. ]; luego ## obtenga los principales procesos que consumen memoria del sistema y guárdelos en el archivo temporal ps-eo pid, ppid, cmd,% mem,% cpu–sort =-% mem | head>/tmp/top_proccesses_consuming_memory.txt file =/tmp/top_proccesses_consuming_memory.txt ## enviar correo electrónico si la memoria del sistema se está agotando echo-e “Advertencia, la memoria del servidor se está agotando! \ n \ nMemoria libre: $ free MB” | mailx-a “$ file”-s “$ subject”-r “$ from”-c “$ to” “$ also_to” fi exit 0

Después de crear su script /etc/scripts/alertmemory.sh. hágalo ejecutable y enlace simbólico a cron.hourly.

# chmod + x/etc/scripts/alertmemory.sh # ln-s-t/etc/cron.hourly/alertmemory.sh/etc/scripts/alertmemory.sh

Esto significa que el script anterior se ejecutará cada 1 hora mientras el servidor esté en ejecución.

Sugerencia. Puede probar si está funcionando según lo previsto, establecer el valor de referencia un poco alto para activar fácilmente el envío de un correo electrónico y especificar un pequeño intervalo de aproximadamente 5 minutos.

Luego continúe verificando desde la línea de comandos usando el comando gratuito provisto en el script. Una vez que confirme que está funcionando, defina los valores reales que le gustaría usar.

A continuación se muestra una captura de pantalla que muestra un correo electrónico de alerta de muestra.

 Alerta por correo electrónico de memoria de Linux Alerta por correo electrónico de memoria Linux Alerta por correo electrónico de memoria Linux

¡Eso es todo! En este artículo, explicamos cómo usar un script de shell para enviar correos electrónicos de alerta a los administradores del sistema en caso de que la memoria del servidor (RAM) se esté agotando. Puede compartir cualquier pensamiento relacionado con este tema con nosotros a través del formulario de comentarios a continuación.

Leave a comment

Your email address will not be published. Required fields are marked *