我想使用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&gt; 10]]
然后
echo $ COUNT
网络
完成
答案 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