【发布时间】:2015-05-22 21:13:39
【问题描述】:
需要每 15 分钟使用“关键字”对运行日志进行一次 grep,但应每 15 分钟检查一次新行。它适用于 sun solaris,因此手表将无法工作。
例如 - 在第一次运行时,它应该使用关键字 grep 前 200 行。 对于下一次运行,它应该 grep 从 201 到 400 行等等。
【问题讨论】:
需要每 15 分钟使用“关键字”对运行日志进行一次 grep,但应每 15 分钟检查一次新行。它适用于 sun solaris,因此手表将无法工作。
例如 - 在第一次运行时,它应该使用关键字 grep 前 200 行。 对于下一次运行,它应该 grep 从 201 到 400 行等等。
【问题讨论】:
如果您不想对 tail -f 的输出进行 grep,则必须记住上次 grep 时所在的位置。
当您可以控制日志文件时,您有一些可能性:
只有时间戳是一个很好的解决方案,其他的都很丑。那么你还能做些什么呢?
类似的东西
LINECOUNTFILE=/var/tmp/mycount
LOGFILE=/var/xxxx.log
if [ -f ${LINECOUNTFILE} ]; then
lastlinecount=$(cat ${LINECOUNTFILE})
else
lastlinecount=0
fi
if [ -f ${LOGFILE} ]; then
newlinecount=$(cat ${LOGFILE} | wc -l)
# Select a solution as described at
# http://unix.stackexchange.com/questions/47407/cat-line-x-to-line-y-on-a-huge-file
echo TODO grep from the file between $lastlinecount and $newlinecount
else
newlinecount=0
fi
echo ${newlinecount} > ${LINECOUNTFILE}
【讨论】: