Получить последние 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

Работает безумно медленно. Но работает.

Строка лога:

Apr 18 16:54:27 mail140 amavis[9271]: (09271-01) Passed CLEAN {RelayedInbound}, [77.52.187.99]:59485 [77.52.187.99] ...

соответственно cut -f 1,2,3 обозначает, что в качестве времени берутся три первых столбца.

Примеряется как конвеер:
sudo tail -n 2000 /var/log/mail.log | ./10min | wc -l
1891

Десять минут содержались в 1891 строке.

script, parsing, awk, log, bash, time

Previous post Next post
Up