Sistema de advertencia de rendimiento de la máquina (CPU, proceso, memoria, monitoreo del disco duro) y alarma de robot,
Hay notas explicativas en el interior, deje un mensaje si no está muy claro y aprendan juntos ~
Archivo final de alarma e inspección: FinalCheck.sh
1 #! / Bin / bash 2 # Si el segundo parámetro es el símbolo ' @ ' , el miembro del grupo correspondiente a @ 手机 号 3 phone = 13889612337 4 #phone = 13778198708 5 # message es el mensaje que se enviará al clavo, el medio Sin espacios 6 IP = `ifconfig | grep ' inet addr: ' | grep -v ' 127.0.0.1 ' | cut -d: -f2 | awk ' {print $ 1} ' ' 7 funciones httpRequest () 8 { 9 #curl Solicite cambiar access_token a su propio 10 curl -H " Tipo de contenido: application / json" -X POST -d ' {" msgtype ":" text "," text ": {" content ":" 主人: ' $ IP $ message ' "}," at ": {" atMobiles ": [" ' $ teléfono ' "], "isAtAll": false}} ' https: // oapi.dingtalk.com/robot/send?access_token=8efdb5626113cd3e8a67f6fea7a2d95b69a69d9af74bb7c2fc8229e8f49a849d 11 } 12 13 #检查硬盘 14 cat disk.log | mientras que la línea de lectura 15 do 16 curDiskUsePer = `echo $ line | awk ' {printf"% d ", $ 1} '` 17 if [$ curDiskUsePer -gt80 ]; luego 18 message = "El disco duro está casi lleno, actualmente ocupa $ curDiskUsePer% " 19 httpRequest 20 fi 21 hecho 22 #Check memory 23 cat memory.log | mientras lee la línea 24 do 25 curDiskUsePer = `echo $ line | awk ' {printf "% d", $ 1} ' ` 26 if [$ curDiskUsePer -gt 8 ]; luego 27 message = " Memoria insuficiente, queda $ curDiskUsePer G " 28 httpRequest 29 fi 30 hecho 31 32 #Compruebe el uso de CPU del proceso 33 cat cpu_process.log | mientras lee la línea 34 do 35 curDiskUsePer = `echo $ line | awk ' {printf"% d ", $ 1} ' ` 36 if [$ curDiskUsePer -gt 3 ] ; luego 37 message = "El proceso ocupa demasiada CPU, actualmente es $ curDiskUsePer% " 38 httpRequest 39 fi 40 hecho 41 42 salida 0
Script de detección de CPU total: cpu_total.sh
1 #! / Bin / sh 2 # 3 rm -rf / home / xsn / MachineHealthCheck / memory.log 4 gratis -m | awk -F ' [:] + ' ' NR == 2 {print ($ 4 + $ 6 + $ 7) / 1000} ' >> / home / xsn / MachineHealthCheck / memory.log 5 6 #echo " Uso de CPU: $ {CPU_USAGE }% " $ time >> /home/xsn/MachineHealthCheck/cpu.log
El uso de CPU de la CPU de proceso es el más alto: cpu_process.sh
1 #! / Bin / sh 2 # 3 rm -rf / home / xsn / MachineHealthCheck / cpu_process.log 4 ps aux --sort = -pcpu | head - 2 | grep -v USUARIO | grep -v mysql | awk -F ' [] + ' ' NR! = 0 {print $ 3} ' >> / home / xsn / MachineHealthCheck / cpu_process.log 5 6 #echo " Uso de CPU: $ {CPU_USAGE}% " $ time >> / home /xsn/MachineHealthCheck/cpu.log
Detección de memoria: memory.sh
1 #! / Bin / sh 2 # 3 rm -rf / home / xsn / MachineHealthCheck / memory.log 4 gratis -m | awk -F ' [:] + ' ' NR == 2 {print ($ 4 + $ 6 + $ 7) / 1000} ' >> / home / xsn / MachineHealthCheck / memory.log 5 6 #echo " Uso de CPU: $ {CPU_USAGE }% " $ time >> /home/xsn/MachineHealthCheck/cpu.log
Detección de disco duro: disk.sh
1 #! / Bin / sh 2 # 3 rm -rf / home / xsn / MachineHealthCheck / disk.log 4 df -THP | awk -F ' [] + ' ' NR! = 1 {print $ 6} ' >> /home/xsn/MachineHealthCheck/disk.log