NameServer脚本自检 自动拉起:
yum -y install nmap
mkdir -pv /data/scripts
cat >/data/scripts/check_nameserver_health.sh<<EOF
#!/bin/sh
source ~/.bash_profile
SRV_PORT="9876"
SRV_PROT="tcp"
IP_ADDR="$(hostname -i)"
PROT_OPT="S"
SCAN_FLAG=0
# Check Status
for i in \$(seq 3)
do
STATUS=\$(/usr/bin/nmap -n -s\${PROT_OPT} -p \${SRV_PORT} \${IP_ADDR} | grep open)
if [ -n "\${STATUS}" ]
then
SCAN_FLAG=1
break
else
sleep 10
fi
done
# Restart NameServer
if [ \${SCAN_FLAG} -ne 1 ]
then
ps -ef|grep namesrv|grep -v grep|grep -v check_nameserver_health|awk '{print \$2}'|xargs kill -9
source /etc/profile
sh \${ROCKETMQ_HOME}/bin/mqnamesrv &
fi
EOF
chmod +x /data/scripts/check_nameserver_health.sh
crontab -l>/tmp/crontab.tmp
echo -e '\n# RocketMQ NameServer Status Check'>>/tmp/crontab.tmp
echo '*/5 * * * * /data/scripts/check_nameserver_health.sh'>>/tmp/crontab.tmp
cat /tmp/crontab.tmp |crontab
rm -rf /tmp/crontab.tmp
# 可以关闭开机自动启动,重启主机测试
BrokerServer脚本自检 自动拉起:
yum -y install nmap
mkdir -pv /data/scripts
cat >/data/scripts/check_brokerserver_health.sh<<EOF
#!/bin/sh
source ~/.bash_profile
SRV_PORT="10911"
SRV_PROT="tcp"
IP_ADDR="$(hostname -i)"
PROT_OPT="S"
SCAN_FLAG=0
# Check Status
for i in \$(seq 3)
do
STATUS=\$(/usr/bin/nmap -n -s\${PROT_OPT} -p \${SRV_PORT} \${IP_ADDR} | grep open)
if [ -n "\${STATUS}" ]
then
SCAN_FLAG=1
break
else
sleep 10
fi
done
# Restart BrokerServer
if [ \${SCAN_FLAG} -ne 1 ]
then
ps -ef|grep broker|grep -v grep|grep -v check_brokerserver_health|awk '{print \$2}'|xargs kill -9
source /etc/profile
sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/2m-noslave/broker.properties &
fi
EOF
chmod +x /data/scripts/check_brokerserver_health.sh
crontab -l>/tmp/crontab.tmp
echo -e '\n# RocketMQ BrokerServer Status Check'>>/tmp/crontab.tmp
echo '*/5 * * * * /data/scripts/check_brokerserver_health.sh'>>/tmp/crontab.tmp
cat /tmp/crontab.tmp |crontab
rm -rf /tmp/crontab.tmp
# 可以关闭开机自动启动,重启主机测试
# 这两个脚本其实只有端口和重启命令不同
[TOC]