检测linux负载过高时重启php的shell脚本
服务器的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脚本