当计数达到10时,SystemOut.log文件字符串搜索,通过电子邮件进行计数和警报

时间:2012-09-03 15:02:47

标签: linux unix solaris tail

我想使用tail -f来监视SystemOut.log文件,所以我尝试使用tail -f并且不允许我同时执行其他操作。我可能错过了一些事情,你们可以帮助我。我搜索但无法得到答案。

问题:每隔5分钟,我将触发下面的脚本,使用tail -f和grep计算'字符串'出现次数并将其写入名为msg.txt的文件(其solaris so -q在grep中不起作用)建议欢迎)

同时,计算字符串出现次数并检查计数是否达到10,然后使用msg.txt文件触发电子邮件。最后,停止一段时间,我不希望它一旦达到计数值10就继续。这个程序将每5分钟触发一次,我只是想确保它在计数达到10时终止。我怎么会停止这个脚本如果计数在5分钟内没有达到10,因为它会被再次触发?

while true ; do

  tail -f SystemOut.log | grep "string" > msg.txt # SystemOut.log for currently running process 

  Count = Count + 1 

  if test $Count == 10

    mail -s "Email Subject" abc@abc.com < msg.txt 

    break

  fi  

done

以不同的方式重写相同的位,但是无法打开文件的grep -c shouts问题我不知道是什么导致了这个问题。任何帮助非常感谢。

虽然是真的;

DO

COUNT_1 = grep -c“搜索字符串”LOG_FILE

睡觉300
COUNT_2 = grep -c“搜索字符串”LOG_FILE COUNT = [[$ COUNT_2- $ COUNT_1]]

如果[[$ COUNT&gt; 10]]
然后 echo $ COUNT 网络

完成

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,这样的事情可能有用:

grep 'string' SystemOut.log > msg.txt

count=`wc -l msg.txt`

if [[ $count == "10" ]]; 
  mail -s "Email Subject" abc@abc.com < msg.txt   
fi