Chinaunix
标题:
如何用一条语句截取文件的错误信息,并同时输出给另一个文件
[打印本页]
作者:
shmtu2005
时间:
2014-07-22 15:54
标题:
如何用一条语句截取文件的错误信息,并同时输出给另一个文件
请教一下,我现在想对一个日志文件循环作监控信息,一旦出现报错信息:"文件提交失败",就会往另外一个alert.log里面添加信息"fail appears",这个怎么用简便的语句实现,比如用一句awk什么的
日志文件格式类似这种:
12345678gjghjghghj
sdfsdgdfgdfgdfgfgd
dfgdfgdfgdfgdfg
dfgdfgdfgdfdfgdfgfg
文件提交失败
sfsdfsdsdsdf
sdfsdfsdsdf
sdfsdfsdfsdf
sdfsdfsdfsdf
..................
作者:
q1208c
时间:
2014-07-22 16:21
如果你用的 shell, 那其实
echo "failed appears" >> alter.log
就足够了.
如果你想连检测也一并做了, 那 grep 再加上 前面那句也够了.
作者:
shmtu2005
时间:
2014-07-22 16:37
回复
2#
q1208c
grep的话一条语句做不到的
作者:
Shell_HAT
时间:
2014-07-22 16:46
回复
2#
q1208c
楼主的问题重点是“循环作监控信息”,日志在不断的更新,直接grep会重复告警。
作者:
shmtu2005
时间:
2014-07-22 16:51
回复
4#
Shell_HAT
这个问题没事,重复报警的问题,我可以通过判断当天alert.log是否已经生成,生成的话我就不再往里面送fail appear,这样我可以保证当天不会重复的了,关键大师帮我弄一段怎么截取并送一段报错信息给alert.log
作者:
shmtu2005
时间:
2014-07-22 16:52
回复
4#
Shell_HAT
不用grep ,awk可以不,对awk语法不熟悉,能否推荐一个
作者:
ivorning
时间:
2014-07-22 16:57
本帖最后由 ivorning 于 2014-07-22 17:02 编辑
回复
6#
shmtu2005
这个需求不用grep 去用awk有点舍近求远啊 个人感觉
grep "XXXX" XX.log && echo "fail appears">alert.txt 应该可以吧
作者:
yestreenstars
时间:
2014-07-22 17:05
目测一下:
awk '/文件提交失败/{print "fail appears";exit}' your.log >> alert.log
复制代码
作者:
q1208c
时间:
2014-07-22 17:24
回复
4#
Shell_HAT
那只能配合 tail 了.
记录下 每次tail时文件的长度. 下次从这个长度开始tail. 以避免重复报警.
再配合 grep , 再加上 echo.
只简单试了一下, 楼主试好了再用哈.
#!/bin/bash
PATTERN="ts"
LOG=/tmp/file1
FILESIZE=`ls -l ${LOG}|awk '{print $5}'`
LASTSIZE=`cat ${LOG}.size 2>/dev/null`
SIZE=`expr ${FILESIZE} - ${LASTSIZE:-0}`
tail -c ${SIZE} ${LOG} | grep -q ${PATTERN}
if [ $? -eq 0 ]; then
echo "`date` failed appears" >> alter.log
fi
echo ${FILESIZE} > ${LOG}.size
复制代码
作者:
Shell_HAT
时间:
2014-07-22 17:27
回复
6#
shmtu2005
不用grep的原因是?
作者:
shmtu2005
时间:
2014-07-22 23:02
回复
10#
Shell_HAT
我现在不是想把关键字的数据传到新文件alert.log,只是希望日志里匹配到关键字之后,在新文件输入一个固定值fail,大师这个用grep怎么实现啊
作者:
Shell_HAT
时间:
2014-07-23 08:42
回复
11#
shmtu2005
哦,明白了,那就是类似7楼的写法。
作者:
shmtu2005
时间:
2014-07-23 09:04
回复
9#
q1208c
你连重复预警的问题都帮我想好了,辛苦辛苦!!!
作者:
shmtu2005
时间:
2014-07-23 09:08
ivorning 发表于 2014-07-22 16:57
回复 6# shmtu2005
原来还可以这样写,学习了
作者:
shmtu2005
时间:
2014-07-23 09:09
yestreenstars 发表于 2014-07-22 17:05
目测一下:
对,我就是想用这种写法,试过了没问题
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2