Un script de shell para enviar alerta de correo electrónico cuando la memoria se baja

Un script de shell para enviar alerta de correo electrónico cuando la memoria se baja

Un aspecto poderoso de los programas de shell Unix/Linux como intento, es su sorprendente apoyo 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 efectivo de administración del sistema. Puede escribir scripts para automatizar las tareas, por ejemplo, las copias de seguridad diarias, las actualizaciones del sistema, etc. crear nuevos comandos/utilidades/herramientas personalizados y más allá. Puede escribir scripts para ayudarlo a mantenerse al día con lo que se está desarrollando en un servidor.

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

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

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

Configuración del entorno de prueba

  1. A CentOS/RHEL 7 servidor de producción con mailx utilidad instalada con servidor de correo postfix que funciona.

Así es como el AlertMemory.mierda El script funciona: primero verifica el tamaño de memoria libre, 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), utilizado como marca de banco 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 envían un correo electrónico de alerta a las direcciones de correo electrónico específicas.

Nota: Tendrá que realizar algunos cambios en el script (especialmente la utilidad del remitente de correo, usar las banderas apropiadas) para cumplir con sus requisitos de distribuciones de Linux.

Script shell para verificar la memoria del servidor
#!/bin/Bash ########################################## ######################################.SH #Description: Enviar correo de alerta cuando la memoria del servidor se ejecute bajo #Args: #author: Aaron Kili Kiseda #Mail: [Correo electrónico protegido] #license: GNU GPL-3 ########### ############################################## ##################### ## Declarar variables de correo ## Correo electrónico Asunto = "Alerta de estado de memoria del servidor"## enviando correo como desde ="[correo electrónico protegido]"## enviando correo a ="[correo electrónico protegido]"## Enviar copia de carbono a también_to ="[correo electrónico protegido]"## Obtenga el tamaño total de memoria gratuita en Megabytes (MB) gratis = $ (Free -mt | Grep Total | Awk 'imprima $ 4') ## Verifique si la memoria libre es menor o es igual a 100 MB if [[[$ $ gratis "-le 100 ]]; Luego, ## Obtenga procesos superiores que consumen la memoria del sistema y guarde en el archivo temporal PS -EO PID, PPID, CMD,%MEM,%CPU --Sort = -%MEM | cabezal>/tmp/top_procresses_consuming_memory.Txt File =/tmp/top_procresses_consuming_memory.txt ## Enviar correo electrónico Si la memoria del sistema se ejecuta una advertencia de bajo echo -e ", la memoria del servidor se está ejecutando bajo!Memoria \ n \ nfree: $ gratis mb "| mailx -a" $ archivo "-s" $ temas "-r" $ de "-c" $ a "" $ también_to "Fi Salida 0 

Después de crear tu script /etc/scripts/alertmemory.mierda, hacerlo ejecutable y un enlace simbólico a Cron.cada hora.

# chmod +x/etc/scripts/alertmemory.sh # ln -s -t /etc /cron.Hora/AlertMemory.sh/etc/scripts/alertMemory.mierda 

Esto significa que el script anterior se ejecutará cada 1 hora siempre que el servidor se esté ejecutando.

Consejo: Puede probar si funciona según lo previsto, configure el valor de la marca de banco un poco alto para activar fácilmente un correo electrónico que se envíe y especifique un pequeño intervalo de aproximadamente 5 minutos.

Luego sigue verificando desde la línea de comando usando el comando gratuito proporcionado 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 de correo electrónico de memoria de Linux

Eso es todo! En este artículo, explicamos cómo usar el 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é ejecutando bajo. Puede compartir cualquier pensamiento relacionado con este tema, con nosotros a través del formulario de comentarios a continuación.