Заказать сайт недорого. Создание сайта на базе системы управления контентом. Индивидуальный подход при создании сайта. Современный и красивый дизайн сайта. Удобная навигация на сайте.

palexa.pp.ua@gmail.com

(+380) 66 531 77 01 ; 67 301 39 26

Удаление старых записей разговоров asterisk

Удаление старых записей разговоров asterisk, важная тема, если диск не "резиновый". Количество хранимых записей разговоров в Asterisk ограничено только размером дискового пространства. Но что мы будем делать, когда место на диске закончиться. Для удаления записи разговоров, можно написать скрипт, который по расписанию планировщика cron, будет удалять файлы старше чем X дней, а также удалять пустые директории.

На сегодняшний момент, у меня установлен из исходников asterisk-1.8.32.2 + freepbx-2.11.0.42. Как выяснилось, после удаления файлов в статистике freepbx уже не показывает микрофончик ,так как там просто проверка на наличие файла.

Чтобы удалить записи, надо написать скрипт bash

Вариант №1

#!/bin/bash
#Удалить файлы в указаной директории старше чем 15 дней, с расширением wav
find /var/spool/asterisk/monitor/ -name '*.wav' -mtime +15 -delete
#Удалить в указаной директории пустые каталоги
cd /var/spool/asterisk/monitor/
find -depth -type d -empty -exec rmdir {} \;

Вариант №2

#!/bin/bash
# путь к хранилищу записей
RECORDINGS=/var/spool/asterisk/monitor
# Количество дней для сохранения
RECORDINGEXPIRY=14
# Количество дней хранения логов очистки
LOGEXPIRY=5
# Текущая дата
DATE=`date "+%Y-%m-%d_%H:%M:%S"`
# Удаляются записи старше чем $EXPIRY дней
find $RECORDINGS -mtime +$RECORDINGEXPIRY -exec rm -rfv {} \; > /var/spool/asterisk/del_logs/removal-$DATE.log
# Удаляются логи старше чем $LOGEXPRY дней
find /var/spool/asterisk/del_logs -mtime +$LOGEXPIRY -exec rm -f {} \;
#Удалить в указаной директории пустые каталоги
cd $RECORDINGS {} \; 
find -depth -type d -empty -exec rmdir {} \; 

Что бы удалять записи автоматически, добавим выполнение этого файла по расписанию в планировщик заданий cron

Информация на сайте оказалась Вам полезной? Вы нашли ответ на вопрос?

Узнайте как поблагодарить меня

Комментарии   

0 #6 lunatik 24.08.2016 13:04
Цитирую Сергей:
Давайте начнём что этот скрипт не вы писали и тестировали скорее всего на новых записях

1-й вариант писал сам. Да и что там писать?
2-й подсмотрел, поэтому он и второй в статье, написал его, что бы не забыть. Будет время или желание, доработаю, но нет времени

Щас на сервере прекрасно работает 1-й вариант, а логи мне нафиг не нужны
Цитировать
0 #5 Сергей 23.08.2016 12:32
Давайте начнём что этот скрипт не вы писали и тестировали скорее всего на новых записях
Цитировать
0 #4 lunatik 23.08.2016 12:25
Цитирую Сергей:
Скрипт вариант №2 кривой так как грохает не правильно, т.е. есть папка 2016 в ней 08. первая запись в папке 08 была создана 1 числа и практически каждый день происходила запись. Как только папка 2016 станет больше RECORDINGEXPIRY=14 она подлежит удалению вместе со всеми подкаталогами и файлами. В первом варианте не хватает логирования

Я о проблеме 2 скрипта написал ниже, лучше бы правильное решение написал, чем ...
Цитировать
0 #3 Сергей 23.08.2016 04:43
Скрипт вариант №2 кривой так как грохает не правильно, т.е. есть папка 2016 в ней 08. первая запись в папке 08 была создана 1 числа и практически каждый день происходила запись. Как только папка 2016 станет больше RECORDINGEXPIRY=14 она подлежит удалению вместе со всеми подкаталогами и файлами. В первом варианте не хватает логирования
Цитировать
0 #2 lunatik 21.04.2016 13:06
Цитирую Антон:
Добрый день!
Запустил я у себя на астериске этот скрипт и он радостно удалил все файлы, которые нашёл, включая вчерашние записи разговоров.

Надеюсь Вы сделали резервную копию.

Когда тестировал и писал, то у меня всё работало.
Вариант №2 - действительно удаляет всё, хотя написано всё правильно.
Вариант №1 - попробуйте в строке
cd /var/spool/asterisk/monitor/ - не писать слеш в конце
В крайнем случае, если не получиться, то напишите просто 1 строку, не удаляяя пустые каталоги, где то там кошка зарыта
find /var/spool/asterisk/monitor/ -name '*.*' -mtime +15 -delete
Цитировать
0 #1 Антон 21.04.2016 12:42
Добрый день!
Запустил я у себя на астериске этот скрипт и он радостно удалил все файлы, которые нашёл, включая вчерашние записи разговоров.
Цитировать

Добавить комментарий


Защитный код
Обновить