Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / TrixBox, Elastix, FreePbx / удаление старых логов

удаление старых логов

Откуда: Казахстан, Петропавловск
Сообщений: 69

удаление старых логов

Есть действующий триксбокс 2.6.2.3, который обслуживает около 12000 звонков в день. Вопрос в том, как удалить старые записи в логах астериска (/var/log/asterisk/full) и cdr (/var/lib/mysql/asteriskcdrdb/cdr.MYD), оставив, скажем, записи месячной давности? Слишком ужж разрослись, особенно тормознутым стало открытие отчетов в вэб-интерфейсе триксбокса
2010-10-15 19:14

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: удаление старых логов

у меня для этого целая подсистема сделана
пакует старые cdr в архив по 100 тыс строк в csv,
а логи постоянно tail`ятся
вообще есть logrotate
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-10-15 21:17

Откуда: Казахстан, Петропавловск
Сообщений: 69

Re: удаление старых логов

Командой /usr/sbin/asterisk -rx 'logger rotate' обрезал логи астериска и удалил их, спасибо Switch. А вот как теперь базу cdr почистить? Проблема в том, что астериск под постоянной нагруззкой (постоянно создаются новые записи в базе cdr) и останавливать его крайне нежелательно.
2010-10-17 10:17

Откуда: Киев
Сообщений: 749

Re: удаление старых логов

базу сдр можно lock'ать секунд на 15 без проблем. астириск с сдр работает асинхронно. если у вас база маленькая, то можно одним запросом чистить.
если большая пишеться такой вот скриптик(баш)
-----------
#!/bin/bash
mysql="/usr/bin/mysql asteriskcdrdb asteriskuser -pamp111 -B -s"
period=" 24 hour "
hold=" 1 month "
starttime=`/bin/date +%Y-%m-%d`
while true
do
firstdate=` echo "select calldate from cdr where calldate<date_sub('$starttime',interval $hold) order by calldate limit 1"|$mysql`
if test "1$firstdate" = "1"
then
exit
fi;
echo "delete from where calldate<date_sub('$starttime',interval $hold ) and calldate<date_sub('$firstdate', interval $period)"|$mysql
sleep 1
done;
-----------
вот както так.удаляет по "период" времени, должен быть индекс по calldate. если его нету, в первый раз прийдеться его создать(будет блокировка).
сумарное время всех запросов будет намного больше, чем в одно удаление, НО блокировка будет некритичная(гараздо короче каждая).




2010-10-17 13:58

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru