教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 检测linux负载过高时重启php的shell脚本

检测linux负载过高时重启php的shell脚本

发布时间:2014-12-02   编辑:jiaochengji.com
本文分享一例shell脚本,用于检测当Linux负载过高时重启php,监测php-fpm并重启,效果不错,有需要的朋友参考下。

服务器的php-fpm经常负载高,于是写了一个shell脚本来检查负载并重启php。
可以根据服务器的情况来决定要负载超过多少时重启php。

系统:centos 5.9 64位

shell脚本内容:
vi check-php.sh
 

复制代码 代码示例:

#!/bin/sh
#edit: www.jiaochengji.com
#
TOP_SYS_LOAD_NUM=1
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 php-fpm" `ps -ef | grep php-fpm | wc -l`
/etc/init.d/php-fpm stop
sleep 8
pkill php-fpm
sleep 8
for i in 1 2 3
do
if [ `pgrep php-fpm | wc -l` -le 0 ]
then
/etc/init.d/php-fpm start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start php-fpm" `ps -ef | grep php-fpm | wc -l`
fi
done
else
if [ `pgrep php-fpm | wc -l` -le 0 ]
then
/etc/init.d/php-fpm start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start php-fpm" `ps -ef | grep php-fpm | wc -l`
fi
fi

定时执行:
*/3 * * * * /root/shell/check-php.sh >>/var/log/check-php.log

在运行脚本时,可能会出现如下的错误提示:
: line 6: bc: command not found
: line 6: [: -eq: unary operator expected
这说明没有找到bc命令,centos系统中使用:yum -y install bc 安装即可。

您可能感兴趣的文章:
检测linux负载过高时重启php的shell脚本
linux下监视进程挂掉后自动重启的shell脚本
linux进程检测与自动重启的脚本一例
shell脚本监控php-fpm并自动重启服务
监控VPS服务器负载/CPU及内存占用并自动重启的shell脚本
source命令执行shell文件与shell script文件名直接运行的区别
监测linux系统负载与CPU、内存、硬盘、用户数的shell脚本
检测linux网络服务是否开启的shell脚本(图文)
获取不同linux系统类型的shell脚本(图文)
监控linux服务器性能的shell脚本

关键词: linux shell  自动重启   
[关闭]
~ ~