線上的node服務經常宕機,不太穩定. 於是寫了個監聽腳本,配合linux的crond定時任務進行檢測.
監聽腳本listen:
#!/bin/bash
LOG_FILE="/home/listen.log"
#檢測node
curtime=$(date "+%Y-%m-%d %H:%M:%S")
pnode=`ps -ef | grep node | grep -v "grep" | wc -l`
if [ $pnode -eq 0 ]; then
echo "$curtime 系統檢測到node,已掛掉,啟動中...." >> $LOG_FILE;
nohup /home/node/bin/node /home/server.js & #啟動node命令,使用絕對路徑(重要!!!)
echo "$curtime node啟動完成" >> $LOG_FILE;
else
echo "$curtime 系統檢測到node運行正常" >> $LOG_FILE;
fi
crond定時任務操作:
service crond start //啟動服務
service crond stop //關閉服務
service crond status // 查看服務
service crond restart //重啟服務
service crond reload //重新載入配置
設置定時任務:
crontab -e
添加任務
*/10 * * * * /home/listen # 每10分鍾運行
參考:
- https://blog.csdn.net/cjh365047871/article/details/85256892
- https://www.cnblogs.com/zhuyeshen/p/12073618.html
- https://blog.csdn.net/weixin_41858542/article/details/85682891
端口監聽
#!/bin/bash
#監控HBase服務是否開啟
echo `date "+%Y-%m-%d %H:%M:%S"` >> Hbase_listen.log
#port=`netstat -nlt|grep 2181|wc -l`
port=echo -e "\n" | telnet localhost 2181 2>/dev/null | grep Connected | wc -l
if [ $port -ne 1 ]
then
echo "Hbase is down! Restarting ..." >> Hbase_listen.log
/usr/local/bin/docker-compose -f /root/docker-hbase/docker-compose-standalone.yml restart
else
echo "Hbase is running" >> Hbase_listen.log
fi