检查状态的一些实用脚本

**

因为运用的是线上阿里云的云主机,可能跟大家配置不是很相同,看看思路就好!!

#这里的curl是发送消息到钉钉自定义机器人上,请自行钉钉群设置,并查看curl地址,修改即可!
**

vim  /opt/kafka/chechk_kafka.sh
#!/bin/bash
#调用java
source /etc/profile
#java路径
export JAVA_HOME=/opt/jdk/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

#检查zookeeper是否正常运行
#检查master
zk_master=$(netstat -ntpl | grep 2181 | awk  '{print $4}' | awk  -F : '{print $2}')
if [ $zk_master ];then
	echo "master正常"
else
	/opt/zookeeper/master/bin/zkServer.sh start
fi

#检查slaver1
zk_slaver1=$(netstat -ntpl | grep 2182 | awk  '{print $4}' | awk  -F : '{print $2}')
if [ $zk_slaver1 ];then
        echo "slave1正常"
else
        /opt/zookeeper/slave1/bin/zkServer.sh start
fi

#检查slaver2
zk_slaver2=$(netstat -ntpl | grep 2183 | awk  '{print $4}' | awk  -F : '{print $2}')
if [ $zk_slaver2 ];then
        echo "slave2正常"
else
        /opt/zookeeper/slave2/bin/zkServer.sh start
fi

sleep 2

#检查kafka是否崩溃,如果崩溃进行删除日志在启动
#定义变量判断kafka的端口
kafka=$(netstat -ntpl | grep 9092 | awk  '{print $4}' | awk  -F : '{print $2}')
if [ $kafka ];then
	echo "kafka一切正常"
else
	rm -rf /tmp/kafka-logs/*			#删除日志
#启动kafka并指定输出到指定位置
	nohup /opt/kafka/kafka/bin/kafka-server-start.sh /opt/kafka/kafka/config/server.properties >/opt/kafka/nohup.out 2>&1 &
	
#如果重启的话就发送信息到钉钉监控群
	curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "kafka服务已重启"}}'
	
Fi

编辑计划任务:

crontab -e

设置每30分钟检查一次:

*/30 * * * * sh /opt/kafka/chechk_kafka.sh

判断服务器磁盘是否快满载,并提示到钉钉群!这里只提供个思路,虽然很笨


这个相当于磁盘到达一半就会提醒

awk 'NF<5{print}' | head -n1 #得到第一行
awk 'NF<5{print}' | tail -n1 #得到倒数第一行
#!/bin/bash
#检查磁盘空间是否满载
#因为取值的时候会取出单位 “G”,不能进行变量比较,我们要取整数,默认单位为“G” ,定义变量时追加 awk -F G '{print $1}'取值!!

two=`df -Ph |awk '{print $3}' | awk 'NF<5{print}' | head -n2 |awk 'NF<5{print}' | tail -n1 | awk -F G '{print $1}'`
#two变量取的是已用的磁盘空间量

three=`df -Ph |awk '{print $4}' | awk 'NF<5{print}' | head -n2 |awk 'NF<5{print}' | tail -n1 | awk -F G '{print $1}'`
#three变量取的是可用的磁盘空间量

#现在判断磁盘空间是否不足,并发送信息到钉钉警告管理员
if [ $three -le $two ];then
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "线下测试服务器:192.168.1.30 磁盘空间快使用完毕,请及时解决!"}}'
                #这里的curl是发送消息到钉钉自定义机器人上,钉钉群可以设置,并查看curl地址
else
	echo "磁盘空间会持续监测"
fi

二:换一种方式,我们定义变量指定它达到多少后在提醒:

cat  chechk-disk.sh
#!/bin/bash
#检查磁盘空间是否满载
#因为取值的时候会取出单位 “G”,不能进行变量比较,我们要取整数,默认单位为“G” 
#定义变量时追加 awk -F G '{print $1}'取值!!

two=`df -Ph |awk '{print $5}' | awk 'NF<5{print}' | head -n2 |awk 'NF<5{print}' | tail -n1 | awk -F % '{print $1}'`
#two变量取的是已用的磁盘空间量百分比

one=80
#one定义的变量是最大磁盘占比为80%,如果加上%号,就定义比较不成功,了解就好!

#现在判断磁盘空间是否不足,并发送信息到钉钉警告管理员

#判断如果定义的百分比值“$one”小于等于“$two”执行下方命令
if [ $one -le $two ];then	

#传递警告消息到钉钉群
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "线下测试服务器:172.31.129.6"kafka": 磁盘空间已到达80%,请及时处理!"}}'
else
	echo "磁盘空间会持续监测"
fi

判断交易所钱包jar包是否启用,没启用就进行启动,根据自己的服务器进行适当修改,这就是个思路!


注://这里面的注释也是对的,只不过是币种没上线,没监控罢了!

#!/bin/bash
#调用java
source /etc/profile
export JAVA_HOME=/usr/bin/java
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

#现在开始判断钱包端口并启动报警
#现在检查BTC
bitcoin=$(netstat -ntplu | grep 7001 | awk -F: '{print $2}' | awk '{print $1}')
if [ $bitcoin ];then
        echo "bitcoin 一切正常"
else
        nohup java -jar /wallet/btc/bitcoin-1.2.jar --spring.profiles.active=prod > /wallet/btc/nohup.out 2>&1 &
        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:bitcoin-jar已重启"}}'
fi

#现在检查LTC
litecoin=$(netstat -ntplu | grep 7002 | awk -F: '{print $2}' | awk '{print $1}')
if [ $litecoin ];then
        echo "litecoin 一切正常"
else
        nohup java -jar /wallet/ltc/litecoin-1.2.jar --spring.profiles.active=prod > /wallet/ltc/nohup.out 2>&1 &
        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:litecoin-jar已重启"}}'
fi

#现在检查ETH
eth=$(netstat -ntplu | grep 7777 | awk -F: '{print $2}' | awk '{print $1}')
if [ $eth ];then
        echo "eth 一切正常"
else
        nohup java -jar /wallet/eth/eth-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:eth-jar已重启"}}'
fi

##现在检查LBC
#lbrycrd=$(netstat -ntplu | grep 7004 | awk -F: '{print $2}' | awk '{print $1}')
#if [ $lbrycrd ];then
#        echo "lbrycrd 一切正常"
#else
#        nohup java -jar /wallet/lbc/lbrycrd-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
#        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
#                -H 'Content-Type: application/json' \
#                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:lbrycrd-jar已重启"}}'
#fi

#现在检查USDT
usdt=$(netstat -ntplu | grep 7005 | awk -F: '{print $2}' | awk '{print $1}')
if [ $usdt ];then
        echo "lbrycrd 一切正常"
else
        nohup java -jar /wallet/usdt/erc-usdt-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:erc-usdt-jar已重启"}}'
fi

##现在检查ACM
#acm=$(netstat -ntplu | grep 7006 | awk -F: '{print $2}' | awk '{print $1}')
#if [ $acm ];then
#        echo "acm 一切正常"
#else
#        nohup java -jar /wallet/acm/actinium-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
#        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
#                -H 'Content-Type: application/json' \
#                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:actinium-jar已重启"}}'
#fi 
   
##现在检查CHI
#chi=$(netstat -ntplu | grep 7007 | awk -F: '{print $2}' | awk '{print $1}')
#if [ $chi ];then
#        echo "chi 一切正常"
#else
#        nohup java -jar /wallet/chi/xaya-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
#        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
#                -H 'Content-Type: application/json' \
#                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:xaya-jar已重启"}}'
#fi 
   
#现在检查sugar
sugar=$(netstat -ntplu | grep 7008 | awk -F: '{print $2}' | awk '{print $1}')
if [ $sugar ];then
        echo "sugar 一切正常"
else
        nohup java -jar /wallet/sugar/sugarchain-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:sugarchain-jar已重启"}}'
fi 
   
##现在检查NMC
#nmc=$(netstat -ntplu | grep 7009 | awk -F: '{print $2}' | awk '{print $1}')
#if [ $nmc ];then
#        echo "nmc 一切正常"
#else
#        nohup java -jar /wallet/nmc/namecoin-1.2.jar --spring.profiles.active=prod > /wallet/eth/nohup.out 2>&1 &
#        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
#                -H 'Content-Type: application/json' \
#                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:namecoin-jar已重启"}}'
#fi 
   
##现在检查vrsc
#vrsc=$(netstat -ntplu | grep 8002 | awk -F: '{print $2}' | awk '{print $1}')
#if [ $vrsc ];then
#        echo "vrsc 一切正常"
#else
#        nohup java -jar /wallet/vrsc/veruscoin-1.2.jar --spring.profiles.active=prod > /wallet/vrsc/nohup.out 2>&1 &
#        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
#                -H 'Content-Type: application/json' \
#                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:veruscoin-jar已重启"}}'
#fi 

#现在检查xcash
xcash=$(netstat -ntplu | grep 8003 | awk -F: '{print $2}' | awk '{print $1}')
if [ $xcash ];then
        echo "xcash 一切正常"
else
        nohup java -jar /wallet/xcash/xcash-1.2.jar --spring.profiles.active=prod > /wallet/xcash/nohup.out 2>&1 &
        curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "172.31.129.10:xcash-jar已重启"}}'
fi 

监控 kuangex-automy、eureka 服务

#!/bin/bash
#检查线上kf-app4jar包服务
source /etc/profile
export JAVA_HOME=/opt/jdk/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

#检查kuangex-automy
#定义取值kuangex-automy的端口
kuangex_automy=`netstat -ntplu | grep 8803 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $kuangex_automy ];then
	echo "kuangex_automy一切正常"
else
		nohup java -jar /opt/automy/kuangex-automy-0.0.1-SNAPSHOT.jar > /opt/automy/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.2 :kuangex_automy服务已重启"}}'
fi

#检查eureka
#定义取值eureka的端口
eureka=`netstat -ntplu | grep 7000 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $eureka ];then
	echo "eureka一切正常"
else
		nohup java -jar /opt/eureka/cloud.jar > /opt/eureka/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.2 :eureka服务已重启"}}'
fi

监控 kuang、wallet、ucenter、point 服务

#!/bin/bash
#检查线上kf-app3jar包服务
source /etc/profile
export JAVA_HOME=/opt/jdk/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

#检查kuang
#定义取值kuang的端口
kuang=`netstat -ntplu | grep 8802 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $kuang ];then
	echo "kuang一切正常"
else
		nohup java -jar /opt/kuang/kuang-0.0.1-SNAPSHOT.jar > /opt/kuang/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.3 :kuang服务已重启"}}'
fi

#检查wallet
#定义取值wallet的端口
wallet=`netstat -ntplu | grep 7006 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $wallet ];then
	echo "wallet一切正常"
else
		nohup java -jar /opt/wallet/wallet.jar > /opt/wallet/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.3 :wallet服务已重启"}}'
fi

#检查ucenter
#定义取值ucenter的端口
ucenter=`netstat -ntplu | grep 6001 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $ucenter ];then
	echo "ucenter一切正常"
else
		nohup java -jar /opt/ucenter/ucenter-api.jar > /opt/ucenter/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.3 :ucenter服务已重启"}}'
fi

#检查point
#定义取值point的端口
point=`netstat -ntplu | grep 8801 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $point ];then
	echo "point一切正常"
else
		nohup java -jar /opt/point/point.jar > /opt/point/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.3 :point服务已重启"}}'
fi

监控 exchange-api、exchange、kuangex-automy 服务

#!/bin/bash
#检查线上kf-app2jar包服务
source /etc/profile
export JAVA_HOME=/opt/jdk/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH


#检查kuangex-automy
#定义取值kuangex-automy的端口
kuangex_automy=`netstat -ntplu | grep 8803 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $kuangex_automy ];then
	echo "kuangex_automy一切正常"
else
		nohup java -jar /opt/automy/kuangex-automy-0.0.1-SNAPSHOT.jar > /opt/automy/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.4 :kuangex_automy服务已重启"}}'
fi

#检查exchange
#定义取值exchange的端口
exchange=`netstat -ntplu | grep 6005 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $exchange ];then
	echo "exchange一切正常"
else
		nohup java -jar /opt/exchange/exchange.jar > /opt/exchange/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.4 :exchange服务已重启"}}'
fi

#检查exchange-api
#定义取值exchange-api的端口
exchange_api=`netstat -ntplu | grep 6003 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $exchange_api ];then
	echo "exchange_api一切正常"
else
		nohup java -jar /opt/exchange-api/exchange-api.jar > /opt/exchange-api/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.4 :exchange-api服务已重启"}}'
fi

监控 market、admin 服务

#!/bin/bash
#检查线上market 和admin 服务
#调用java程序
source /etc/profile
export JAVA_HOME=/opt/jdk/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

#检查market
#定义取值market的端口
market=`netstat -ntplu | grep 6004 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $market ];then
	echo “market服务正常”
else
	nohup java -jar /opt/market/market.jar > /opt/market/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.5 :market服务已重启"}}'
fi

#检查admin
#定义取值admin的端口
admin=`netstat -ntplu | grep 6010 | awk -F : '{print $2}' | awk '{print $1}'`
if [ $admin ];then
	echo “admin服务正常”
else
	nohup java -jar /opt/admin/admin-api.jar > /opt/admin/nohup.out 2>&1 &
		curl https://oapi.dingtalk.com/robot/send?access_token=7f70632277405221c028f39e8c9a5dc1eb7da4d6c8b3c3b2bafa48805e25fc8a \
                -H 'Content-Type: application/json' \
                -d '{"msgtype": "text", "text": {"content": "生产服务器172.31.129.5 :admin服务已重启"}}'
fi

注://后面的脚本看实际情况编写,虽然菜,但重在思路,基础脚本还有很多可优化处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值