shell监控日志关键字,并杀死有故障进程重启

在实际开发当中,会遇到很多程序运行一段时间出现故障,例如flume没有采集日志,写hbase的程序出现”Too many open files”或”session Time out”。除了把代码写健壮性,尽量能做到7*24小时零故障保障,还可以通过crontab来配置定时检测的脚本,分析程序的日志,根据关键来产生预警,或者来进行kill掉进程进行重启。

#bin/sh
is_equal(){
  if [ $1 eq '1' ]
  then
    echo $pid
    kill -9 $pid
    echo $?
  else exit
fi
//$7是gawk分割netstat -tunpl | grep 8083产生字符串的位置
my_pid=`netstat -tunpl | grep 8083 | gawk '{print $7}'`
cur_statu=`cat /app/my.log | tail -n 1 | grep 'Too many open files '|gawk -F 'Too many open files' '{print 1}'`
echo $cur_statu
is_equal $cur_statu $my_pid
sleep 5
nohup java -jar my.jar >/app/my.log 2>&1 &
echo 重启程序

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注