0

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

问题:每 5 分钟,我将触发以下脚本以使用带有 grep 的 tail -f 计算“字符串”出现次数并将其写入名为 msg.txt 的文件(它的 solaris 所以 -q 在 grep 中不起作用,欢迎在这里提出任何建议)

同时,计算字符串出现次数并检查计数是否达到 10,然后触发带有 msg.txt 文件的电子邮件。最后,停止while,一旦达到计数值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 对文件的喊叫无法打开我不知道是什么导致了问题。非常感谢任何帮助。

虽然是真的;

COUNT_1= grep -c "搜索字符串" LOG_FILE

sleep 300
COUNT_2= grep -c "搜索字符串" LOG_FILE COUNT= [[ $COUNT_2-$COUNT_1]]

如果 [[ $COUNT > 10 ]]
则回显 $COUNT fi

完毕

4

1 回答 1

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
于 2012-09-03T15:25:31.123 回答