【发布时间】:2013-07-04 00:05:56
【问题描述】:
尝试使用(grep 匹配)提取最后 5 分钟的日志
所以我做一个tac syslog.log | sed / date -d "5 minutes ago"
日志的每一行都显示这种格式
Jun 14 14:03:58
Jul 3 08:04:35
所以我真的很想从
获取数据检查Jul 4 08:12
Jul 4 08:17
我尝试了这种方法,但 KINDA 有效(尽管它仍然每天从 08:12:到 08:17:适合)
e=""
for (( i = 5; i >= 0; i-- ))
do
e='-e /'`date +\%R -d "-$i min"`':/p '$e;
done
tac /var/log/syslog.log | sed -n $e
【问题讨论】:
-
我想我几乎用这个 dt=$(date '+%b %e %H:%M:' -d '6 minutes ago'); tac var/log/routers.log | sed '/"$dt"/q
-
发现我的系统日志转储了错误的时间信息,因为每个开关实际上可能会关闭 30 秒或需要 20 秒后才能进入系统日志,因此它可能会在时间范围之后丢失日志。