Linux Shell 脚本实时监测 Nginx 状态/挂掉脚本会立即自动重启 Nginx - 汇站网

Linux Shell 脚本实时监测 Nginx 状态/挂掉脚本会立即自动重启 Nginx

2024-01-12 0 983

前言:

最近我购买了一台新的服务器,配置好环境后,发现Nginx经常意外停止运行。经过一番努力,我终于解决了这个问题。为了防止以后出现类似情况,我编写了一个shell脚本来监控 Nginx 的状态,如果它停止运行,脚本会自动重启 Nginx,以确保它一直处于运行状态。当然,如果你的 Nginx 频繁自动停止,那么你需要找出根本原因并解决它。

1. 使用宝塔面板

如果你使用宝塔面板,那么非常简单。只需进入“计划任务”菜单,选择“shell 脚本”作为任务类型,选择执行周期为 15 分钟,然后将下面的代码填入“脚本内容”中:
这样,每隔 15 分钟脚本就会自动检测 Nginx 是否停止运行,如果停止了,它会自动启动 Nginx。请注意,你可以根据需要自行修改时间间隔。

#!/bin/bash
# author: 汇站网# website: https://www.huizhanii.com/34397.html# 检查 nginx 的状态
curl -s http://127.0.0.1/nginx_status > /dev/null 2>&1

# 如果 nginx 没有运行
if [ $? -ne 0 ]
then
    echo "Nginx is not running. Restarting Nginx."
    /etc/init.d/nginx restart
else
    echo "Nginx is running."
fi

2. 其他通用方法

如果你使用的是其他面板或程序,你可以尝试以下通用方法来解决问题。

2.1 创建脚本

将下面的代码保存为 dr_check_nginx.sh 文件,并上传到服务器的 root 目录下。然后执行命令 chmod+x/root/dr_check_nginx.sh,为该脚本文件赋予执行权限。

#!/bin/bash
# author: 汇站网
# website: https://www.huizhanii.com/34397.html

# 检查 nginx 的状态
nginx_procnum=`ps -ef|grep "nginx"|grep -v grep|wc -l`
 
# 如果 nginx 没有运行
if [ $nginx_procnum -eq 0 ]
then
	echo "Nginx is not running. Restarting Nginx."
	/etc/init.d/nginx start
else 
	echo "Nginx is running."
fi

2.2 添加定时任务

使用 crontab -e 命令添加一个定时任务,将检查时间间隔设置为 15 分钟(根据需要自行修改):

#autorestartNginx
*/15****/bin/bash/root/dr_check_nginx.sh

3. 检测并重启 NMP

该脚本可以检测 php、nginx、mysqld 和redis是否正在运行,并自动重启它们。你可以根据自己的服务器环境进行修改和删减。使用方法请参考上述第 2 节。

#!/bin/bash
# author: 汇站网
# website: https://www.huizhanii.com/34397.html

# 检测 php,nginx,mysqld,redis 是否运行并自动重启
phpfpm_procnum=`ps -ef|grep "php-fpm"|grep -v grep|wc -l`
nginx_procnum=`ps -ef|grep "nginx"|grep -v grep|wc -l`
mysql_procnum=`ps -ef|grep "mysqld"|grep -v grep|wc -l`
redis_procnum=`ps -ef|grep "redis"|grep -v grep|wc -l`
 
if [ $phpfpm_procnum -eq 0 ]
then
	echo "Php-fpm is not running. Restarting Php-fpm."
	/etc/init.d/php-fpm-71 start
else 
	echo "Php-fpm is running."
fi
if [ $nginx_procnum -eq 0 ]
then
	echo "Nginx is not running. Restarting Nginx."
	/etc/init.d/nginx start
else 
	echo "Nginx is running."
fi
if [ $mysql_procnum -eq 0 ]
then
	echo "Mysql is not running. Restarting Mysql."
	/etc/init.d/mysql start
else 
	echo "Mysql is running."
fi
if [ $redis_procnum -eq 0 ]
then
	echo "Redis is not running. Restarting Redis."
	/etc/init.d/redis start
else 
	echo "Redis is running."
fi

转载请注明:汇站网 » Linux Shell 脚本实时监测 Nginx 状态/挂掉脚本会立即自动重启 Nginx

收藏 (0)

微信扫一扫

支付宝扫一扫

点赞 (0)

感谢您的来访,获取更多精彩资源请收藏本站。

本站声明

本资源仅用于个人学习和研究使用,禁止用于任何商业环境!

 1.  本网站名称:汇站网
 2.  本站永久网址:https://www.huizhanii.com/
 3.  本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
 4.  未经原版权作者许可,禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
 5.  为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
 6.  若资源侵犯了您的合法权益, 请持您的版权证书和相关原作品信息来信通知我们请来信     通知我们我们会及时删除,给您带来的不便,我们深表歉意!
 7.  如下载链接失效、广告或者压缩包问题请联系站长处理!
 8.  如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
 9.  本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
 10.  因源码具有可复制性,一经赞助 ,不得以任何形式退款。
 11.  更多详情请点击查看

汇站网 WordPress教程 Linux Shell 脚本实时监测 Nginx 状态/挂掉脚本会立即自动重启 Nginx https://www.huizhanii.com/34397.html

汇站

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

发表评论
暂无评论
  随机评论 表情开关按钮图片
表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情
登录后评论
联系官方客服

为您解决烦忧 - 24小时在线 专业服务

(汇站网)一个专注站长资源的平台网站,提供最新的网站模板和整站源码,内容包含各类精品网页模板,企业网站模板,网站模板,DIV+CSS模板,织梦模板,帝国cms模板,discuz模板,wordpress模板,个人博客论坛模板,上千种免费网页模板下载尽在汇站网.找源码上汇站.huizhanii.com