又有shell编程问题,请教大家

又有shell编程问题,请教大家

一个程序,每发生一笔交易就在log文件里面产生一行交易记录,格式如下:

[code:1]2005-05-10 08:19:01||单位机密信息|客户机密信息|8|客户机密信息|单位机密信息|000||[/code:1]

大家看到了最后一列数字是000,这就是正常的,如果出现了111或者109这两个信号,那么就证明出问题啦。

现在我是tail -f log,这样,log文件的任何变化都在我的telnet上显示出来,但是每天发生万多笔交易,我不可能一直盯着屏幕啊,所以,怎样可以写一个脚本可以代替我盯着log文件,每当新的一行交易记录进入时检测这一行的最后一列是否包含111或者109,如果是,就beep的叫或者就屏幕闪,或者怎么样都可以,行不行?谢谢各位。



咦,怎么发在水园了,转到shell去。
有没有人啊…………vimchina在哪儿啊?
[code:1]zhyfly@zhyfly:~/bash$ cat log
2005-05-10 08:19:01||单位机密信息|客户机密信息|8|客户机密信息|单位机密信息|000||2005-05-10 08:19:01||单位机密信息|客户机密信息|8|客户机密信息|单位机密信息|109||zhyfly@zhyfly:~/bash$ cat log|awk -F"|" '{if($8!~/000/)print}'
2005-05-10 08:19:01||单位机密信息|客户机密信息|8|客户机密信息|单位机密信息|109||
zhyfly@zhyfly:~/bash$
[/code:1]
用grep就可以了呀,这个简单~
最简单的:
[code:1]
#!/usr/local/bin/bash

tail -1 logfile|grep "000">/dev/null

case $? in
        0) echo ok ;;
        1) echo wrong ;;
esac[/code:1]
呵呵,不错,修改一下:
[code:1]#!/usr/local/bin/bash

tail -l logfile|grep "000">/dev/null

case $? in
   0) . ;;
   1) echo -e "\a" ;;
esac[/code:1]
出现beep声
[quote:986b25eb2f="zhy2111314"]呵呵,不错,修改一下:
[code:1]#!/usr/local/bin/bash

grep "000" logfile>/dev/null

case $? in
   0) . ;;
   1) echo -e "\a" ;;
esac[/code:1]
出现beep声 [/quote]我又稍微修改了一下下,更合理一点点
[code:1]
#!/usr/local/bin/bash

tail -1 logfile|grep "000">/dev/null

case $? in
   0) echo ok ;;
   1) echo wrong ;;
esac
[/code:1]
可以在退出状态为1(即出现问题的情况)的case语句里再加条件判断,更具体为111和109
atfa你自己整吧
诸位使用grep是不好的,因为用户信息里面有很多0000,呵呵,不过这个用awk和sed都简单,我能搞定。

这个脚本可以实时的监控?我感觉还是需要把它加到crontab里面才行啊,有没有办法让他不要退出一直执行呢?
那就是cron了