当前位置: > shell编程 >

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

时间:2014-11-05 12:53来源:linux.it.net.cn 作者:IT

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

系统:centos 5.9 64位

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

复制代码代码示例:

#!/bin/sh
#
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 安装即可。





 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容