confluence服务守护脚本
使用shell脚本实现对confluence服务健康状况的监控,并在服务挂掉时,及时重新启动服务
#!/bin/bash
#create by kjl
#2019-11-22#参数
ip=172.20.**.**
port=9090
logfile=/home/work/confluence/data/wiki_check.log
confluence_log=/home/work/confluence/atlassian-confluence-5.6.5/logs
sleep_time=60#钉钉
phone=138*********
url=https://oapi.dingtalk.com/robot/send?access_token=*******************
message()
{
curl -H "Content-type: application/json" -X POST -d '{"msgtype": "text","text": {"content": "'$1'"}, "at": {"atMobiles": ["'$phone'"], "isAtAll": false}}' $url
}#返回状态码检查
returnnode_check(){#检查间隔per_time=10#状态码正常的次数right_times=0for (( i=1; i <= 3; i++ ))doif [[ `curl -I -m 10 -o /dev/null -s -w %{http_code} $ip:$port` -lt 400 ]];then #如果切换到work用户执行,服务内部有错,拿到的状态吗是500000let right_times++fisleep $per_timedone
}#进程端口检查,heal_num为1表示进程或端口出问题,为0表示均正常
pp_check(){nc -z $ip $port#判断端口和进程健康状况if [[ $? -ne 0 || `ps -ef | grep confluence | wc -l` -eq 1 ]];then heal_num=1elseheal_num=0fi
}#死循环
while [[ true ]];dosleep $sleep_timenow_date=$(date "+%Y-%m-%d")now_time=$(date "+%Y-%m-%d %H:%M:%S")#首次检查returnnode_checkpp_checkif [[ $right_times -lt 3 || $heal_num -eq 1 ]];then#触发重启#钉钉通知服务异常#message "ding~服务异常,正在尝试重启..."echo $now_time"**********服务异常,尝试重启...*************" >>$logfilepid=`ps aux |grep 'confluence' |grep -v grep |grep -v 'wiki_check' | awk '{print $2}'`if [[ -n ${pid} ]]; thenkill -9 ${pid}ficp -a $confluence_log/catalina.out $confluence_log/catalina.$now_date.log && echo '' > $confluence_log/catalina.out/home/work/confluence/atlassian-confluence-5.6.5/bin/start-confluence.sh"#日志中可以捕捉到“INFO: Server startup in”信息,但是状态吗不对elseecho $now_time"**********服务健康状况正常*************">>$logfilecontinuefii=0while [[ $i -lt 60 ]]; do grep 'INFO: Server startup in' $confluence_log/catalina.outif [[ $? -eq 0 ]];thenbreakfilet i++sleep 10done#再次复核returnnode_checkpp_checkif [[ $right_times -lt 3 || $heal_num -eq 1 ]];then#重启后服务仍未恢复#钉钉通知人工处理message "ding~wiki服务重启失败,请尽快排查问题"echo $now_time"**********服务重启失败*************">>$logfileelseecho $now_time"**********服务重启成功*************">>$logfilefi
done
confluence服务守护脚本相关推荐
- windows服务守护进程bat脚本、windows窗体守护进程bat脚本
线上运行的windows服务和窗体服务程序经常挂掉,只能从windows日志中找到报了底层错误,问题无法定位,目前的办法是在服务器上运行守护进程 window服务守护进程 @echo off titl ...
- 后台服务守护进程神器pm2介绍及使用
前言 linux的后台服务程序需要在后台一直运行.如果通过ssh访问临时启动的,会话一结束就直接关闭了服务.想让服务在后台一直运行且永远不挂掉,推荐后台服务守护进程神器pm2,强大且适用于各种语言的后 ...
- 怎样在javascript函数中将变量传递给服务端脚本程序?
怎样在javascript函数中将变量传递给服务端脚本程序? (有朋友问上述问题, 愿把结论分享给大家). 摘 要: 服务器端脚本运行时, 它只会解释执行<% %>或<?php ...
- php-fpm 没有启动脚本,php-fpm服务启动脚本
在php-fpm还是打补丁的时候,php-fpm重启只需要执行php-fpm restart或者reload, 自从php5.3之后,php-fpm的启动和停止显得比较麻烦,特意改写了一份nginx的 ...
- 启动和停止Oracle服务bat脚本
总所周知,Oracle随开机启动会占很大内存,而你每次想用的时候还得去计算机服务里去找服务.一个一个的启动,比较麻烦. 这里给出两个bat脚本,来直接双击启动和停止Oracle服务[脚本内容来源于网络 ...
- vsftpd的不同安装方式及服务控制脚本
包括vsftpd的yum安装.源码安装.服务启动.停止,以及最终的服务控制脚本 vsftpd启动: 启动脚本:/etc/rc.d/init.d/vsftpd 或者直接执行可执行文件/usr/sbi ...
- Linux的/etc/init.d:用service命令可执行init.d目录中相应服务的脚本
1./etc/init.d目录中存放的是一系列系统服务的管理(启动与停止)脚本. 2.用service命令可执行init.d目录中相应服务的脚本,如执行命令"service resin st ...
- linux80端口检查,Linux下基于端口的服务检查脚本
Linux下基于端口的服务检查脚本 #!/bin/bash #program:Usingtostudythe[if...then...fi]program #dsk2007/10/83:00 #con ...
- linux下tomcat脚本,Linux下重启多个 tomcat 服务的脚本(推荐)
由于修改tomcat的配置文件或手动操作数据库数据后,tomcat的缓存和redis的缓存很严重,需要经常重启tomcat来释放缓存,经常就是手动重启. # 1.查找tomcat的进程ID ps -e ...
最新文章
- Springboot+Mybatis+Durid
- MySQL数据类型以及元数据的使用
- 关于Spring的69个面试问答——终极列表
- 柴油发电机组自动控制系统工作原理
- python统计单词频率、存放在字典中_Python3实现统计单词表中每个字母出现频率的方法示例...
- WPF实现一个彩虹按钮
- 869. 重新排序得到 2 的幂
- s5pv210——串口通信的基础概念
- mov 和 lea 的区别有哪些?
- axios post请求
- JAVA 创建学生类
- 再也不用担心动态规划,BAT大佬精讲42道题目,相见恨晚
- android11系统原生铃声,原生系统的凤毛麟角 索尼Xperia 1 II推送Android 11体验
- 解读Android日志
- tplink怎么进去_用手机或电脑进入TP-Link路由器设置界面的方法 怎么进入TP-Link路由器设置界面?...
- 分布式监控工具zabbix 配置安装
- mogrt格式动态字幕模板安装和使用
- 如何在CTEX上对论文进行排版
- 2013.12.26 泡面吧--判断一个数是否为质数
- 常用独立自建站工具大盘点,哪个性价比更高?