检测linux负载过高时重启php脚本
当服务器的php-fpm经常搞得负载高,又找不到的原因的时候,只能写个脚本来帮忙检查负载并重启php,这也是没办法的事情.大家可以根据自己服务器的情况来决定要负载超过多少就重启php,我这里只设定了负载到1就重启php.
系统:centos 5.9 64位
脚本内容:
vi check-php.sh
03 | SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//' ` |
05 | echo $( date + "%y-%m-%d" ) `uptime` |
06 | if [ ` echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM" | bc ` - eq 1 ] |
08 | echo "#0#" $( date + "%y-%m-%d %H:%M:%S" ) "pkill php-fpm" ` ps -ef | grep php-fpm | wc -l` |
09 | /etc/init.d/php-fpm stop |
15 | if [ `pgrep php-fpm | wc -l` - le 0 ] |
17 | /etc/init.d/php-fpm start |
19 | echo "#1#" $( date + "%y-%m-%d %H:%M:%S" ) "start php-fpm" ` ps -ef | grep php-fpm | wc -l` |
23 | if [ `pgrep php-fpm | wc -l` - le 0 ] |
25 | /etc/init.d/php-fpm start |
27 | echo "#2#" $( date + "%y-%m-%d %H:%M:%S" ) "start php-fpm" ` ps -ef | grep php-fpm | wc -l` |
定时执行
*/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 安装.
标签: php-fpm php linux shell 脚本 监控 重启 负载
评论: