用户的需求。
主要目的是判断Linux服务器上的日志文件中是否出现了某个关键字(比如XXX错误)。
本来如果可以在上面装东西,就很简单了,用Java写一个。但是用户不喜欢在 服务器上装第三方的东西,只能接受使用Linux自带的工具。
于是看了下,发现tail结合awk,wget可以实现。最后结果是
tail -f /tmp/1.log | awk '{ system("wget -q -O /dev/null http://192.168.1.100:8080/log?content=\"" $0 "\"")}' > /dev/null
其实也没啥说的。
tail来获得日志文件最新的内容。获得后,用awk拼装成一个命令串。然后再用awk的system()函数执行这个命令。
在这个命令中,通过wget来向其它的服务器发送日志的内容。发送的时候要用双引号把内容括起来,否则如果日志中有空格之类的东西,就收不到了。
最后,wget的输出文件设置成/dev/null,以免在当前目录生成一大堆wget的输出文件。