利用Shell 脚本实时检测Linux Nginx运行状态 异常自动重启 - 汇站网

利用Shell 脚本实时检测Linux Nginx运行状态 异常自动重启

2024-10-24 0 1,351

正文:

以前汇站编写了一个监控 MySQL 服务状态的脚本,它能够自动重启数据库服务,以应对数据库意外停止的紧急情况。现在,随着技术的发展,汇站又遇到了新的挑战——新购置的服务器上,Nginx服务有时会异常停止。经过一番努力,汇站成功解决了这个问题,并决定分享一个监控 Nginx 状态的shell脚本,以自动重启服务,确保 Nginx 始终在线。当然,如果 Nginx 频繁自动重启,那么就需要深入调查并解决根本问题。
利用Shell 脚本实时检测Linux Nginx运行状态 异常自动重启

1.宝塔面板:

使用宝塔面板的用户可以轻松实现监控。只需进入“计划任务”菜单,选择“shell 脚本”作为任务类型,并将执行周期设置为每 15 分钟一次。然后,在“脚本内容”中填入以下代码:


#汇站网
#https://www.huizhanii.com/38811.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

这样,系统就会每 15 分钟自动检查 Nginx 是否运行,如果发现服务已停止,就会自动启动。请注意,您可以根据需要调整时间间隔。

2.其他通用

对于使用其他面板或程序的用户,可以尝试以下通用方法:

2.1 编写脚本
首先,将以下代码保存为名为`dr_check_nginx.sh`的文件,并上传至服务器的根目录。然后,通过执行命令`chmod +x /root/dr_check_nginx.sh`来赋予该脚本执行权限。


#汇站网
#https://www.huizhanii.com/38811.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 分钟一次。


#汇站网
#https://www.huizhanii.com/38811.html
#auto restart Nginx
*/15 * * * * /bin/bash /root/dr_check_nginx.sh

3. 监控并重启 NMP 服务

如果您希望同时监控并重启 php、nginx、mysqld 和redis服务,可以使用以下脚本。您可以根据服务器环境自行修改或删除部分内容。使用方法请参考第 2 节中的说明。


#汇站网
#https://www.huizhanii.com/38811.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

转载请注明:汇站网 » 利用 Shell 脚本实时检测 Linux Nginx 运行状态 异常自动重启

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

支付二维码
点赞 (0)

免责 声明

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

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

汇站网 技术分享 利用Shell 脚本实时检测Linux Nginx运行状态 异常自动重启 https://www.huizhanii.com/38811.html

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

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

相关文章

发表评论
暂无评论
  随机评论   表情   下载本站到电脑桌面


表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情
登录后评论
联系官方客服

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

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