linux系统CPU、内存、硬盘、网络、lnmp服务整体监控邮件报警

Posted on Posted in 监控
Tips: 本文创建于2014年10月20日,已超过 2 年,内容或图片可能已经失效!
  1. #!/bin/bash  
  2. IP=`ifconfig | awk 'NR==2{print $2}' | awk -F: '{print $2}'`  
  3. #一.检查系统情况  
  4. #!/bin/bash  
  5. #1.CPU检查  
  6. echo "##########CPU state show##########"  
  7. echo "_____________________________________________________________________________________________"  
  8. top -n 1|grep Cpu  
  9. us=`top -n 1 | grep Cpu | awk '{print $2}' | awk -F"%" '{print $1}'`  
  10. us100=`echo $us*100 | bc | awk -F"." '{print $1}'`  
  11. sy=`top -n 1 | grep Cpu | awk '{print $3}' | awk -F"%" '{print $1}'`  
  12. sy100=`echo $sy*100 | bc | awk -F"." '{print $1}'`  
  13. #echo sy*100 = $sy100  
  14. cpu_number=`echo "$us100+$sy100" | bc`  
  15. #echo us*100+sy*100 = $cpu_number  
  16. if [ $cpu_number -gt "7000" ];then  
  17. echo "$IP CPU is hight" | mail -s "warn!server: $IP CPU is hight" email@163.com  
  18. else  
  19. echo -e "\033[32m ...CPU is (OK) ! \033[0m"  
  20. fi  
  21. echo "_____________________________________________________________________________________________"  
  22. echo ""  
  23.   
  24. #2.内存检查  
  25. echo "##########MEM state show##########"  
  26. echo "_____________________________________________________________________________________________"  
  27. free -m | awk 'NR<3{print}'  
  28. free -g | grep -i mem | awk '{if($4 < 10){printf("3") > "/proc/sys/vm/drop_caches"}}'  
  29. echo -e "\033[32m ...内存 is (OK) ! \033[0m"  
  30. echo "_____________________________________________________________________________________________"  
  31. echo ""  
  32. #3.硬盘空间检查  
  33. echo "##########DRIVE state show##########"  
  34. echo "_____________________________________________________________________________________________"  
  35. df -h  
  36. use_df=`df -h | awk 'NR==2{print $5}'`  
  37. if [ $use_df == "90%" ];then  
  38. echo "$IP DF is hight" | mail -s "warn!server: $IP DF is hight" email@163.com  
  39. else  
  40. echo -e "\033[32m ...硬盘 is (OK) ! \033[0m"  
  41. fi  
  42. if [ $use_df == "95%" ];then  
  43. echo "$IP df is hight" | mail -s "warn!server: $IP DF is hight" email@163.com  
  44. else  
  45. echo -e "\033[32m ...硬盘 is (OK) ! \033[0m"  
  46. fi  
  47. echo "_____________________________________________________________________________________________"  
  48. echo ""  
  49. #4.网络检查  
  50. echo "##########NETWORK state show##########"  
  51. ifconfig | awk -F":" 'NR==2 {print $2}' | awk 'BEGIN{print "IP"}{print $1}'  
  52. ifconfig | grep RX | awk 'NR==2{print}'  
  53. echo -e "\033[32m ...网络 is (OK) ! \033[0m"  
  54. echo "_____________________________________________________________________________________________"  
  55. echo ""  
  56. ####################################################################################################  
  57. #二.检查nginx、php、mysql状态  
  58. #1.nginx ps and netstat  
  59. echo "##########nginx state show##########"  
  60. echo "_____________________________________________________________________________________________"  
  61. nginx_port_number=`netstat -lntp|grep :80|wc -l` #1  
  62. nginx_process_number=`ps -ef|grep nginx|grep -v grep |wc -l` #5  
  63. if [ $nginx_port_number == "0" ];then  
  64. echo "$IP nginx is down" | mail -s "warn!server: $IP nginx_port is down" email@163.com  
  65. /usr/local/nginx/sbin/nginx  
  66. if [ $test_nginx != "0" ];then  
  67. echo "$IP nginx is down" | mail -s "warn!server: $IP not't restart" email@163.com  
  68. fi  
  69. else  
  70. echo -e "\033[32m ...nginx is running(OK) ! $(date) \033[0m"  
  71. fi  
  72. if [ $nginx_process_number == "0" ];then  
  73. echo "$IP nginx is down" | mail -s "warn!server: $IP nginx_process is down" email@163.com  
  74. /usr/local/nginx/sbin/nginx  
  75. test_nginx2=echo $?  
  76. if [ $test_nginx2 != "0" ];then  
  77. echo "$IP nginx is down" | mail -s "warn!server: $IP not't restart" email@163.com  
  78. fi  
  79. else  
  80. echo -e "\033[32m ...nginx is running(OK) ! $(date) \033[0m"  
  81. fi  
  82. echo "_____________________________________________________________________________________________"  
  83. echo ""  
  84.   
  85. #2.php ps and netstat  
  86. echo "##########php state show##########"  
  87. echo "_____________________________________________________________________________________________"  
  88. php_fpm_port_number=`netstat -lntp|grep :9000|wc -l` #1  
  89. php_fpm_process_number=`ps -ef|grep php-fpm|grep -v grep|wc -l` #129  
  90. if [ $php_fpm_port_number == "0" ];then  
  91. echo "$IP php-fpm is down" | mail -s "warn!server: $IP php_fpm_port is down" email@163.com  
  92. /etc/init.d/php-fpm restart  
  93. test_php1=echo $?  
  94. if [ $test_php1 != "0" ];then  
  95. echo "$IP php-fpm is down" | mail -s "warn!server: $IP not't restart" email@163.com  
  96. fi  
  97. else  
  98. echo -e "\033[32m ...PHP is running(OK) ! $(date) \033[0m"  
  99. fi  
  100. if [ $php_fpm_process_number == "0" ];then  
  101. echo "$IP nginx is down" | mail -s "warn!server: $IP php_fpm_process is down" email@163.com  
  102. /etc/init.d/php-fpm restart  
  103. test_php2=echo $?  
  104. if [ $test_php2 != "0" ];then  
  105. echo "$IP php is down" | mail -s "warn!server: $IP not't restart" email@163.com  
  106. fi  
  107. else  
  108. echo -e "\033[32m ...PHP is running(OK) ! $(date) \033[0m"  
  109. fi  
  110. echo "_____________________________________________________________________________________________"  
  111. echo ""  
  112. ##3.mysql ps and netstat  
  113. #  
  114. #echo "##########mysql state show##########"  
  115. #echo "_____________________________________________________________________________________________"  
  116. #mysql_port_number=`netstat -lntp|grep :3306|wc -l` #1  
  117. #mysql_process_number=`ps -ef|grep mysql|grep -v grep|wc -l` #2  
  118. #  
  119. #if [ $mysql_port_number == "0" ];then  
  120. # echo "$IP mysql is down" | mail -s "warn!server: $IP mysql_port is down" email@163.com  
  121. # /etc/init.d/mysqld restart  
  122. # test_mysql1=echo $?  
  123. # if [ $test_mysql1 != "0" ];then  
  124. # echo "$IP mysql is down" | mail -s "warn!server: $IP not't restart" email@163.com  
  125. # fi  
  126. #else  
  127. # echo -e "\033[32m ...MYSQL is running(OK) ! $(date) \033[0m"  
  128. #fi  
  129. #  
  130. #if [ $mysql_process_number == "0" ];then  
  131. # echo "$IP mysql is down" | mail -s "warn!server: $IP mysql_process is down" email@163.com  
  132. # /etc/init.d/mysqld restart  
  133. # test_mysql2=echo $?  
  134. # if [ $test_php2 != "0" ];then  
  135. # echo "$IP mysql is down" | mail -s "warn!server: $IP not't restart" email@163.com  
  136. # fi  
  137. #else  
  138. # echo -e "\033[32m ...MYSQL is running(OK) ! $(date) \033[0m"  
  139. #fi  
  140. #echo "_____________________________________________________________________________________________"  

3 thoughts on “linux系统CPU、内存、硬盘、网络、lnmp服务整体监控邮件报警

  1. Google Chrome 48.0.2564.97 Google Chrome 48.0.2564.97 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36

    Alex +1(949)285-2056 Alexandr Shipitsyn Buy Low Ламинин Laminine LPGN from $ 29.

  2. Google Chrome 56.0.2924.87 Google Chrome 56.0.2924.87 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

    Представляем вам личного помощника!
    Мы собрали в одном месте все самые полезные и интересные сайты, чтобы вы могли без проблем выбрать именно то, что нужно именно вам.

  3. Google Chrome 63.0.3223.8 Google Chrome 63.0.3223.8 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3223.8 Safari/537.36

    http://bit.ly/2IH9Q8m Гелевые перчатки и носочки для spa ухода за руками и ногами
    Инновационные гелиевые носки и перчатки на основе натуральных компонентов для ухода за кожей рук и ног.
    Питают и тонизируют кожу, восстанавливают ее эластичность и упругость, способствуют профилактике грибковых заболеваний.

Leave a Reply

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

1 + fifteen =