linux 常用cron检测脚本

分类:知识百科 日期: 点击:0

在linux系统中,我们经常需要做一些检测操作,如:检测mysql进程状态啦、检测redis-service进程是否存在啦之类的,所以最好是有一个脚本能把这些检测操作统统都放到cron中进行定时检测,而不是我们人工去登陆服务器、查看进程状态等

# 检测nginx状态
$ cat ./check_nginx.sh
#!/bin/bash
check_num=`ps -e -o stat,ppid,pid,cmd | grep nginx | grep -v grep | grep -v check | egrep -v '^[Zz]' | wc -l`
echo 检测时间: `date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
if [[ $check_num -lt 1 ]];
then
    echo 'nginx运行状态异常, 开始检测僵尸进程'
        echo $check_num
        check_num_z=`ps -e -o stat,ppid,pid,cmd | grep nginx | grep -v grep | grep -v check | egrep '^[Zz]' | wc -l`
        if [[ $check_num_z -gt 0 ]]
        then
            echo '存在僵尸进程, 开始清理僵尸进程, 请保证运行该脚本的为超级用户或有权限kill该进程的用户'
                if [[ $check_num_z -eq 1 ]]
                then
                    check_num_id=`ps -e -o stat,ppid,pid,cmd | grep nginx | grep -v grep | grep -v check | egrep '^[Zz]' | awk '{print$3}'`
                        kill -9 $check_num_id
                        echo 'Kill命令执行完成.'
                fi
        fi
        echo '开始启动php-fpm程序'
        service nginx restart
        echo 'nginx程序启动完成. '
else
    echo '检测结果为正常运行'
fi

# 检测自定义程序的进程(此处以go编写的网站服务fram_api进行示例)
$ cat check_fram_api.sh
#!/bin/bash
check_num=`ps aux | grep fram_api | grep -v check | grep -v grep | wc -l`
if [[ $check_num = "0" ]];
then
        cd /home/www/golang_myself;
        ./fram_api >> fram_api.log 2>&1 &
fi


标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。