我们如何在bash中使用(RESET)功能制作TIMER

时间:2017-04-03 07:06:16

标签: bash shell sh

我是shell脚本的新手,我已经搜索了很多关于这个问题的东西。但无法找到完美的解决方案。

问题是:这是一个带有“ERROR”,Pattern的日志监控代码 我们如何在unix脚本中创建TIMER。支持我有5分钟的计时器,时间每1秒继续减少。所以我想在一定条件下再次将计时器重置为5分钟(比如说ERROR发生的$ FREQUENCY大于ex2)。

#!/usr/bin/env bash
PATTERN='ERROR'
TIMER=300
FREQUENCY=2

while true;
do grep -i $PATTERN logfile > tmp_log

while [ $TIMER -gt 0 ]
do
  sleep 1 &
  printf "  $TIMER \r" &
  TIMER=$[$TIMER-1];
  wait

done

if [[ $(wc -l <tmp_log) -ge $FREQUENCY ]]
        then
            TIMER=300
            echo $TIMER
fi

 sleep $TIMER
done

1 个答案:

答案 0 :(得分:0)

#!/bin/bash

PATTERN='ERROR'
TIMER=300
FREQUENCY=2

while true
do
        while [ $TIMER -gt 0 ]
        do
                sleep 1
                TIMER=$((TIMER - 1))
                grep -i $PATTERN logfile > tmp_log
                count=`wc -l tmp_log | awk '{ print $1 }'`
                if [ $count -gt $FREQUENCY ]
                then
                        TIMER=300
                fi
        done
        break
done

这对你的情况很好。