CentOS下Web服务器CPU负载超过阀值自动重启shell脚本
2016-12-02 15:03
746 查看
定时监控服务器负载,超过一定阀值后,自动重启web服务。
apache安装目录:/usr/local/apache
脚本运行日志文件:/usr/local/apache/check_cpu_load.log
脚本存放目录:/home/crontab
cd /home/crontab
vi check_cpu_load.sh #编辑,添加以下代码
#!/bin/sh
#crontab: */5 * * * * /home/crontab/check_cpu_load.sh >> /usr/local/apache/check_cpu_load.log
TOP_SYS_LOAD_NUM=3
SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`
echo $(date +"%y-%m-%d") `uptime`
if [ `echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM"|bc` -eq 1 ]
then
echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log
/usr/local/apache/bin/apachectl stop
sleep 5
pkill httpd
sleep 5
for i in 1 2 3
do
if [ `pgrep httpd | wc -l` -le 0 ]
then
/usr/local/apache/bin/apachectl start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log
fi
done
else
if [ `pgrep httpd | wc -l` -le 0 ]
then
/usr/local/apache/bin/apachectl start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log
fi
fi
:wq! #保存退出
crontab -e #添加计划任务
*/5 * * * * /home/crontab/check_cpu_load.sh >> /usr/local/apache/check_cpu_load.log
:wq! #保存退出
service crond restart #重启计划任务
通过以上设置后,当服务器负载超过3时,在5分钟内会自动运行脚本,重启apache服务,使网站恢复访问
本文出自http://www.111cn.net/sys/CentOS/102450.htm
apache安装目录:/usr/local/apache
脚本运行日志文件:/usr/local/apache/check_cpu_load.log
脚本存放目录:/home/crontab
cd /home/crontab
vi check_cpu_load.sh #编辑,添加以下代码
#!/bin/sh
#crontab: */5 * * * * /home/crontab/check_cpu_load.sh >> /usr/local/apache/check_cpu_load.log
TOP_SYS_LOAD_NUM=3
SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`
echo $(date +"%y-%m-%d") `uptime`
if [ `echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM"|bc` -eq 1 ]
then
echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log
/usr/local/apache/bin/apachectl stop
sleep 5
pkill httpd
sleep 5
for i in 1 2 3
do
if [ `pgrep httpd | wc -l` -le 0 ]
then
/usr/local/apache/bin/apachectl start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log
fi
done
else
if [ `pgrep httpd | wc -l` -le 0 ]
then
/usr/local/apache/bin/apachectl start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log
fi
fi
:wq! #保存退出
crontab -e #添加计划任务
*/5 * * * * /home/crontab/check_cpu_load.sh >> /usr/local/apache/check_cpu_load.log
:wq! #保存退出
service crond restart #重启计划任务
通过以上设置后,当服务器负载超过3时,在5分钟内会自动运行脚本,重启apache服务,使网站恢复访问
本文出自http://www.111cn.net/sys/CentOS/102450.htm
相关文章推荐
- Linux VPS服务器根据CPU负载及内存占用自动重启的bash shell脚本
- linux系统资源负载过高自动重启apache的shell脚本
- 使用shell脚本监控服务器内存和cpu使用量,自动清理无效内存(补充篇)
- 如何用shell脚本监控服务器负载、cpu、内存、硬盘和登录用户数
- linux系统资源负载过高自动重启apache的shell脚本
- 智能监测自动重启Apache服务器的Shell脚本
- 智能监测自动重启Apache服务器的Shell脚本
- Linux VPS服务器根据CPU负载及内存占用自动重启的bash shell脚本
- Centos开机自动执行shell脚本启动tomcat服务器
- linux系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- 使用shell脚本进行服务器系统监控——系统负载监控(4)
- shell脚本实现自动压缩一天前的日志文件并传到ftp服务器上
- Redhat linux 系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- CentOS 5.3平台下通过脚本自动访问FTP及SMB服务器设置参考v1.0
- centos inux 系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本(二)
- 自动同步服务器vm文件的shell脚本
- 【Shell/Python】Linux 进程自动监控bash shell脚本 监控VPS服务器负载/CPU及内存占用 自动重启
- 使用shell脚本进行服务器系统监控——系统负载监控(2)
- 使用shell脚本进行服务器系统监控——系统负载监控(3)