用shell脚本写一个通用的监听程序异常并重启脚本

进来服务器的程序php-fpm时常在并发下时常挂掉,而且时常在凌晨2点以后,通过排查是因为php配置需要调整并发,同时,为了不影响我休息(以前老师说:能用机器和程序解决问题的坚决不用人去操作,这样才会提高效率),我增加了一个shell监听php-fpm进程,如果异常就自动重启的脚本。

图片

下面介绍一下我是如何操作的:

  1. 创建一个日志文件目录

# cd /var/log# mkdir script# cd  script

2. 创建一个日志文件

# echo "" > php-fpm-restart.log

3. 编写shell脚本,监听服务进程是否异常,异常则自动重启并写入日志

图片

vi 创建一个php-fpm.sh脚本


#!/bin/bash

CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
LOG_FILE="/var/log/script/php-fpm-restart.log"

if systemctl status php8.1-fpm > /dev/null 2>&1; then
    echo 'php8.1-fpm is running'
    echo "${CURRENT_TIME}  php8.1-fpm is running." >> ${LOG_FILE} 
else
    echo 'php8.1-fpm is not running'
    systemctl start php8.1-fpm
    echo "${CURRENT_TIME}  php8.1-fpm is not running ,already restart success." >> ${LOG_FILE} 
fi

给shell脚本分配可以执行权限

chmod +x php-fpm.sh

4. 增加linux定时crontab任务 crontab -e

图片

5. 查看执行日志  cat /var/log/script/php-fpm-restart.log

图片

6. 总结这个脚本的通用性,其他程序都可以稍微改改就能使用,简单方便快捷

上面脚本只需更改需要监听的程序即可实现你需要监听的程序,比如:


#!/bin/bash

CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
LOG_FILE="/var/log/script/nginx-restart.log"

if systemctl status nginx > /dev/null 2>&1; then
    echo 'nginx is running'
    echo "${CURRENT_TIME}  nginx is running." >> ${LOG_FILE} 
else
    echo 'nginx is not running'
    systemctl start nginx
    echo "${CURRENT_TIME}  nginx is not running ,already restart success." >> ${LOG_FILE} 
fi

所以上面shell脚本,根据你自身需要可以随意变通。

以上是小哥本人文章的全部内容,希望总结会帮助到各位看官。最后,小哥温馨提示:每天阅读3分钟,天天学习一点点,天天进步一点点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值