惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
小众软件
小众软件
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
L
LangChain Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Docker
Cyberwarzone
Cyberwarzone
腾讯CDC
V
Vulnerabilities – Threatpost
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
AWS News Blog
AWS News Blog
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
MyScale Blog
MyScale Blog
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
Security Archives - TechRepublic
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
Security Latest
Security Latest
N
News and Events Feed by Topic
Attack and Defense Labs
Attack and Defense Labs
V
Visual Studio Blog
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
Intezer
P
Privacy International News Feed
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
O
OpenAI News
云风的 BLOG
云风的 BLOG
博客园_首页
雷峰网
雷峰网
M
MIT News - Artificial intelligence
Project Zero
Project Zero
I
InfoQ
Hacker News: Ask HN
Hacker News: Ask HN
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic
S
Security Affairs
S
Secure Thoughts
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
美团技术团队
The GitHub Blog
The GitHub Blog
B
Blog
H
Hacker News: Front Page

龙笑天下

Dragon 主题:带用户中心和商城系统的博客 CMS 高级 WordPress 主题 V6.2.0 Dragon Lite 主题:WordPress 博客自媒体资讯主题 V1.4.0 一文带您了解怎么优化WP-Cron计划任务,提升WordPress性能,减少服务器负担 WordPress如何更换网页字体?轻松更换主题的字体为任意您喜欢的自定义字体 使用DragonAI给你的博客文章自动生成AI摘要,支持Wordpress和Typecho 使用开源程序RustDesk自建远程桌面控制连接服务,支持Win/Mac/Android/iOS全平台 程响 - 可能 便宜的半年期200天HTTPS单域名/公网IP/通配符SSL证书 WordPress 6.7主题和插件语言翻译加载失效问题解决方法:避免过早调用load_theme_textdomain()和load_plugin_textdomain() 新手从零开始学会使用宝塔面板搭建一个属于自己的Wordpress网站 Debian 12修复OpenSSH远程代码执行高危漏洞:CVE-2024-6387,附Debian系统软件源国内镜像源 谷歌浏览器Google Chrome 149.0.7827.103正式稳定版、测试版及开发版本大全 火狐浏览器Mozilla Firefox 151.0.4正式版、ESR长期版及其它版本大全 不显示Wordpress评论列表里超过N天的评论者的网站链接 Blossom,一个支持私有部署的云端存储开源日志笔记软件
Linux Shell脚本实时检测Nginx状态 挂掉则立即自动重启
龙笑天 · 2023-12-05 · via 龙笑天下

Linux Shell 脚本实时检测 Nginx 状态 挂掉则立即自动重启

很久前龙笑天写了一个检测 Mysql 状态并自动重启的脚本,详见下文,以解决数据库意外停止运行的情况。

Linux Shell 脚本实时检测 MySQL 状态 挂掉则立即自动重启-BG

Linux Shell 脚本实时检测 MySQL 状态 挂掉则立即自动重启

  • 2020-11-19
  • 865

最近入手了个新服务器,配置好环境后,居然诡异的会出现 Nginx 意外停止运行。龙笑天经过几经折腾,终于解决了。另外,为了防止后续有这种情况,在此提供一个 shell 脚本,监控 Nginx 状态,未运行,就自动重启,以保证 Nginx 处于运行状态。当然,如果你的nginx频繁自动停止,那么你就要查找出根本原因,并解决下为好~

1.宝塔面板

使用宝塔面板的话,就很简单了,前往“计划任务”菜单,“任务类型”选“shell 脚本”,“执行周期”选“N 分钟”,然后填 15 分钟,“脚本内容”内容填下面的代码:

#!/bin/bash
# author: 龙笑天
# website: https://www.ilxtx.com/linux-shell-auto-restart-nginx.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 是否停止,停止的话就会自动启动了。PS:时间间隔 15 自行修改。

2.其他通用

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

2.1 制作脚本

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

#!/bin/bash
# author: 龙笑天
# website: https://www.ilxtx.com/linux-shell-auto-restart-nginx.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 分钟自行修改:

#auto restart Nginx
*/15 * * * * /bin/bash /root/dr_check_nginx.sh

3 NMP 全部检测并重启

检测 php,nginx,mysqld,redis 全部是否运行并自动重启。脚本如下,可自行修改删减以适配你的服务器环境,食用方法,参考上面的第 2 节。

#!/bin/bash
# author: 龙笑天
# website: https://www.ilxtx.com/linux-shell-auto-restart-nginx.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

相关参考

宝塔面板:自动检查 nginx 状态,未运行就重启-pc6a 学习分享
判断 nginx 服务是否启动,未启动自动重启 shell 脚本-CSDN 博客

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

猜你喜欢