实现原理通过监听端口,如果端口挂掉,尝试重启服务,并发送邮件进行通知(脚本中没有发送邮件的内容,有兴趣的小伙伴可以自行添加)
1.首先第一步我们需要找出对应的端口和对应的java服务
netstat-tunlp | grep "java"
2.我们第二步就是怎么判断这个进程是否关闭了
netstat -an | grep "8080"|awk '$NF == "LISTEN" {print $0}'|wc -l
这个命令要是不明白的,可以自行百度
3.已知有两个端口,我们关闭一个端口,在查查另外的一个端口的状态
kill -9 进程号
4. 0代表关闭
6.已知端口关闭代表0,开启代表1,那么已经知道这两个条件,那就开始写shell脚本吧
#!/bin/bash
ListeningPort=`netstat -an | grep "8080"|awk '$NF == "LISTEN" {print $0}'|wc -l`
ListeningPort1=`netstat -an | grep "8081"|awk '$NF == "LISTEN" {print $0}'|wc -l`
if [ $ListeningPort -eq 0 ]
then
echo "`date` : listener8081,8080 port is down">>/usr/local/jar/listen.log
nohup java -jar demo-1.jar &
elif [ $ListeningPort1 -eq 0 ]
then
echo "`date` : listener8081,8080 port is down">>/usr/local/jar/listen.log
# 如果8081或者8080端口down了,发送邮件(发送邮件没写,用python或者java写一个既可)
nohup java -jar demo-2.jar &
else
echo "`date` : 8081和8080端口正常" >>/usr/local/jar/listen.log
fi
7.接下来就是设置一个定时执行的任务
可以参考我的另外一个,到此就全部结束了,感谢大家观看,收工下班回家!
https://blog.csdn.net/qq_38925100?spm=1000.2115.3001.5343
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66761.html