Cómo reiniciar el sistema Linux integrado si la utilización de la CPU es demasiado alta
#?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 p >
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