Red de conocimiento informático - Conocimiento informático - Cómo reiniciar el sistema Linux integrado si la utilización de la CPU es demasiado alta

Cómo reiniciar el sistema Linux integrado si la utilización de la CPU es demasiado alta

¡Un guión puede hacerlo! Cuando se descubre que el uso de la CPU es demasiado alto, los programas relacionados se reiniciarán automáticamente. .

#?Establece el porcentaje máximo de uso de memoria.

PID _ MEM _MAX="85 "

#?Establecer la carga máxima del sistema

SYS_LOAD_MAX="1 "

#? Establezca el nombre del servicio a monitorear.

NAME_LIST="php5-cgi?mysql "

¿Para qué? ¿nombre? ¿existir? $NAME_LIST

Hacer

#?Inicializar estadísticas de memoria

PID_MEM_sum=0

#?Obtener el proceso del total del programa.

PID_NUM_SUM=`ps? auxiliar? |?grep? $NOMBRE? |?wc? -I

#?Lista el porcentaje de memoria ocupada por cada proceso.

PID_MEM_list=`ps? auxiliar? |?grep? $NOMBRE? |?awk? {¿Imprimir? $4}'`

#? Calcular el uso total de memoria de todos los procesos

¿Para qué? ¿PID? ¿existir? $PID_MEM_LIST

DO

PID_MEM_SUM=`echo? $PID_MEM_SUM? ?$PID_MEM? |?BC

Completo

#?Obtener la carga del sistema de último minuto.

SYS_LOAD=`¿tiempo de actividad? |?awk? {¿Imprimir? $(NF-2)}'? |?sed? s/, //' '

#? Compara el uso de la memoria y la carga del sistema para ver si superan el umbral.

MEM_VULE=`¿awk? BEGIN { print(" $PID_MEM_SUM " ' gt;= ' " $PID_MEM_MAX" '?"1":"0")}'`

LOAD_VULE=`awk? BEGIN { print(" $ SYS _ LOAD " ' gt; ='"$SYS_LOAD_MAX " '?"1":"0")}'`

#?Si el uso de la memoria del sistema y la carga del sistema exceden el umbral y luego realice las siguientes operaciones.

¿Y si? [?$MEM Vulai? =?1?]?||?[?$LOAD_VULE? =?1?]?;Entonces

#?Escribir registro

¿Echo? $(¿fecha? "a-m-d? H:M:S ")? "¿Chica? $NOMBRE "? "(MEM: $PID_MEM_SUM, CARGA: $SYS_LOAD)" gt; /var/log/autoreboot.log

#?Detener el servicio normalmente

/etc/init.d/$NAME? ¿Dejar de

dormir? Tres

#?Apagado forzado

pkill? $NAME

#?Empezar de nuevo

/etc/init.d/$NAME? Iniciar

#Write Log

¿Eco? $(¿fecha? "a-m-d? H:M:S ")? "¿Iniciar? $NOMBRE "? "(MEM: $PID_MEM_SUM, CARGA: $SYS_LOAD)"? gt gt? /var/log/autoreboot.log

Otro

¿Eco? "¿$NAME? ¿Muy? ¡Saludable! (MEM: $PID_MEM_SUM, LOAD: $SYS_LOAD)"? ¿gt? /dev/null

El barco no corre con los costos de carga

Completado

Guarde el código anterior como un archivo, por ejemplo: auto_reboot.sh

Agregue una tarea programada y configúrela para que se revise cada minuto (tenga en cuenta la ubicación correcta del archivo)

crontab? -e

*?*?*?*?*?/bin/bash/root/auto_reboot.sh

Asegúrese de que bc esté instalado en su sistema Linux; de lo contrario, se Se produjo un error. Compruebe si está instalado el comando bc can be used:

BC? -v

¿Puedo usar centos si no está instalado? ¿Está sabroso? -¿Sí? ¿Instalar? ¿ANTES DE CRISTO? Instala y ejecuta el comando:

Shhh? /bin/bash/root/auto_reboot.sh

¿CentOS? ¿Bash ese servidor VPS se reinicia automáticamente según la carga de la CPU y el uso de la memoria? Script de Shell:

#?! /bin/sh

#?Uso:? */2?*?*?*?*?raíz? /root/checkload.sh

#?[CentOS] El servidor VPS reinicia automáticamente el script según la carga de la CPU y el uso de la memoria.

#?Establece la memoria restante mínima, generalmente al menos 50 M disponibles (en megabytes).

Minutos MEM gratuitos="50 "

#?Establecer la carga máxima del sistema

SYS_LOAD_MAX="3 "

#?Establecer el reinicio Memoria mínima restante en megabytes para iniciar el servicio.

RESTART_FREE_MEM_MIN="500 "

#?Establezca el nombre del servicio a monitorear.

NAME_LIST="httpd?mysqld "

¿Para qué? ¿nombre? ¿existir? $NAME_LIST

¿

#? Obtener memoria restante en megabytes

free_MEM= `¿gratis? -m|grep? ¿Mem|awk? {¿Imprimir? $4}'`

#?Obtener memoria usada en megabytes

#?Free_MEM= `¿Gratis? -m|grep? ¿Mem|awk? {¿Imprimir? $3}'`

#?Obtener la carga del sistema del último minuto.

SYS_LOAD=`¿tiempo de actividad? |?awk? {¿Imprimir? $(NF-2)}'? |?sed? s/, //' '

#? Compara el uso de la memoria y la carga del sistema para ver si superan el umbral.

MEM_VULE=`¿awk? Inicio { print(" $ FREE _ MEM " ' lt; '" $FREE_MEM_MIN " '?"1": "0")}'`

LOAD_VULE=`awk? BEGIN { print(" $ SYS _ LOAD " ' gt; ='"$SYS_LOAD_MAX " '?"1": "0")}'`

#?Resultados de la prueba

#?LOAD_VULE="1 "

#?Echo? $(¿fecha? "a-m-d? H:M:S ")? "¿DEPURAR? $NOMBRE "? "(mem libre: $mem libre|$MEM-VULE, carga: $SYS_LOAD|$LOAD_VULE)" gt; /var/log/auto boot _ debug . log

#? Si el uso de la memoria del sistema y la carga del sistema exceden el umbral, realice las siguientes operaciones.

¿Y si? [?$MEM Vulai? =?1?]?||?[?$LOAD_VULE? =?1?]?;Entonces

#?Escribir registro

¿Echo? $(¿fecha? "a-m-d? H:M:S ")? "¿Chica? $NOMBRE "? "(free_mem: $free_mem, cargar: $sys_load)" gt; /var/log/autoreboot.log

#? ¿Detener el servicio normalmente

¿Servicio? $NOMBRE? ¿Dejar de

dormir? ¿Tres

#?Forzar cierre

¿Trucos? $NAME

#?Empezar de nuevo

¿Dormir? 10

¿Para qué? ¿I? ¿existir? 1?2?三

Do

Free_MEM= `¿Gratis? -m|grep? ¿Mem|awk? {¿Imprimir? $4}'`

MEM_VULE=`awk? BEGIN { print(" $ FREE _ MEM " ' gt;='"$RESTART_FREE_MEM_MIN " '?"1":"0")}'`

¿Si? [?`pgrep? $NOMBRE? |?wc? -¿Yo`?-Le? 0?]? amperio amperio? [?$MEM Vulai? =?1?]

Entonces

¿servicio? $NOMBRE? ¿Empiezas

a dormir? 15

¿Eco? "Inicio automático:"? $(¿fecha? "a-m-d? H:M:S ")? "¿Iniciar? $NOMBRE "? `ps? -EF? |?grep? $NOMBRE? |?wc? -¿Yo? /var/log/autoreboot.log

El barco no corre con los gastos de carga

Completado

#?Write log

Echo ? $(¿fecha? "a-m-d? H:M:S ")? "¿Iniciar? $NOMBRE "? "(free_mem: $free_mem, cargar: sys_load)"? gt gt? /var/log/autoreboot.log

Otro

MEM_VULE=`awk? BEGIN { print(" $ FREE _ MEM " ' gt;='"$RESTART_FREE_MEM_MIN " '?"1":"0")}'`

¿Si? [?`pgrep? $NOMBRE? |?wc? -¿Yo`?-Le? 0?]? amperio amperio? [?$MEM Vulai? =?1?]

Entonces

¿servicio? $NOMBRE? ¿Empiezas

a dormir? 15

¿Eco? "Inicio automático:"? $(¿fecha? "a-m-d? H:M:S ")? "¿Iniciar? $NOMBRE "? `ps? -EF? |?grep? $NOMBRE? |?wc? -¿Yo? /var/log/autoreboot.log

Otro

¿Eco? "¿$NAME? ¿Muy? ¡Saludable! (FREE_MEM: $FREE_MEM, LOAD: $SYS_LOAD)"? ¿gt? /dev/null

El barco no corre con los gastos de carga

El barco no corre con los gastos de carga

Completo