linux设置定时运行脚本
线上的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