Добрый день!
на днях пересел с IPCAD на ULOG-acctd в вопросе просчёта трафика.
Задача просто хранить логи в удобочитаемом и малогабаритном виде
В принципе сейчас всё работает нормально, но хотел бы либо подправить свои скрипты, либо может посоветуйте другое решение.
что бы бы понятно что от куда, по быстрому обрисую картину.
Логи сыпятся в виде:
1306715941 95.24.122.31 192.168.0.5 1147
1306715938 92.46.32.238 192.168.0.5 298
1306715929 183.89.247.162 192.168.0.5 658
после обработки конвертером получается это
/var/log/ulog-acctd/ulog.time.convert
#!/bin/sh
while read a b; do
echo `date -d @$a "+%d.%m %k:%M"` "$b"
done <$1 >$2
30.05 6:39 95.24.122.31 192.168.0.5 1147
30.05 6:38 92.46.32.238 192.168.0.5 298
30.05 6:38 183.89.247.162 192.168.0.5 658
кроном запускаем "дневной отчёт"
/etc/cron.d/ulog
58 23 * * * root /var/log/ulog-acctd/ulog.dhcp
59 23 * * * root /var/log/ulog-acctd/ulog.daily
1 1 1 * * root /var/log/ulog-acctd/ulog.monthly
имеющий вот такой ужасный вид
/var/log/ulog-acctd/ulog.daily
#!/bin/bash
date "+%d-%m-%y" > /var/log/ulog-acctd/ulog.date;
kill -s SIGTSTP `cat /var/run/ulog-acctd.pid`;
cp /var/log/ulog-acctd/account.log /var/log/ulog-acctd/daily/account.log;
cp /dev/null /var/log/ulog-acctd/account.log;
kill -s SIGCONT `cat /var/run/ulog-acctd.pid`;
/var/log/ulog-acctd/ulog.time.convert /var/log/ulog-acctd/daily/account.log /var/log/ulog-acctd/daily/ulog.log;
cd /var/log/ulog-acctd/daily/ && tar -czf /var/log/ulog-acctd/daily/ulog.$(cat /var/log/ulog-acctd/ulog.date).tar.gz ulog.log;
rm /var/log/ulog-acctd/daily/account.log;
rm /var/log/ulog-acctd/daily/ulog.log
если способ подправить это в божеский вид, или использовать нечто другое для подобного?