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