Получить последние 10 минут почтового лога

Apr 18, 2017 17:11

Скриптик 10min:

#! /bin/bash

TIME=`date -d '-10minute' +%s`

while read line
do
time=`echo $line | cut -f 1,2,3 -d' ' `
time=`date -d "$time" +%s`
if [ $time -gt $TIME ]
then
echo $line
fi
done
Работает безумно медленно. Но работает ( Read more... )

script, parsing, awk, log, bash, time

Leave a comment

Comments 13

what_me April 19 2017, 07:42:41 UTC
Как он поведёт себя в первые десять минут нового года?

Reply

linux007 April 19 2017, 07:46:14 UTC
Это зависит от того, как date -d отработает превращение в юниксовое время строку без года.

Reply


what_me April 19 2017, 08:24:39 UTC
другая версия 10min

#!/usr/bin/env perl -ln
use Time::Piece;

INIT {
$pattern = '%b %d %T';
$start_time = Time::Piece->strptime(localtime->strftime($pattern), $pattern) - 600;
}

print if $start_time < Time::Piece->strptime(substr($_,0,15), $pattern);

Reply

linux007 April 19 2017, 08:28:35 UTC
Красиво (и в смысле цветов, и в смысле кода).

Вопрос, будет ли он работать быстрее, чем bash?

Reply

linux007 April 19 2017, 08:31:24 UTC
Error parsing time at /usr/lib/i386-linux-gnu/perl/5.20/Time/Piece.pm line 469.

ЧЯДНТ?

Reply

what_me April 19 2017, 08:59:33 UTC
формат входных данных не ожидаемый.
Можно посмотреть кусок лога на котором он не работает?

Reply


Leave a comment

Up