Livejournal
Log in
Post
Friends
My journal
linux007
Получить последние 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
Thread 11
Leave a comment
Up
Comments 13
Reply
Reply
#!/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
Вопрос, будет ли он работать быстрее, чем bash?
Reply
ЧЯДНТ?
Reply
Можно посмотреть кусок лога на котором он не работает?
Reply
Leave a comment