Удаление записей и старых каталогов из FreePBX
После установки FreePBX возникла потребность чистить старые записи. В Asterisk 13 записи теперь складываются по папкам вида: /var/spool/asterisk/monitor/%Year%/%month%/%day%.
На просторах Интернет был найден скрипт, но он был не идеальным, отсылал по три письма, да и не удалял сами папки. Также не было никаких отчётов о том, что было удалено, а я не люблю оставаться в неведении: согласитесь, было бы не лишним знать что происходит на сервере. Вот, собственно говоря, сам скрипт. Комментарии есть возле каждого пункта на 2-х языках, у себя поставил его в cron с запуском раз в неделю:
#!/bin/bash # Задаём переменные (Specify variables) MYSQL_USER="pbxu$eR" # Имя пользователя MySQL (MySQL username) MYSQL="/usr/bin/mysql" # Расположение MySQL (whereis mysql) MYSQLCHECK="/usr/bin/mysqlcheck" # Расположение MySQLcheck (whereis mysqlcheck) MYSQL_PASSWORD="xxxxxxxxxyyyyyyyyyyzzzzzzzzzzzzz" # Пароль пользователя MySQL (MySQL password) EMAIL="admin@yourdomain.com" # Почтовый адрес для уведомлений (Email address for notification) TYPE="month" # Интервал времени (SECOND,MINUTE,HOUR,DAY,MONTH,YEAR) NUMBER="3" # Количество (3 месяца) (the number 3 months) LOG="/var/log/cdr-temp.log" # Лог файл перезаписываемый и отсылаемый на почту(A temporary log file is sent on email as a report) LOG1="/var/log/cdr-clean.log" # Лог файл постоянный (The log file permanent) data="`date`" # Чистим лог от старых записей (Clean old log records from) echo > $LOG # Делаем запись даты в лог (The date recorded in the log) echo >> $LOG1 echo "---------=$data=---------" >> $LOG1 echo >> $LOG1 # Чистим asteriskcdrdb.cdr (clean asterisksdrdb.cdr) if $MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "delete from asteriskcdrdb.cdr where calldate < DATE_SUB(NOW(), interval $NUMBER $TYPE);"; then echo >> $LOG1 echo Старые записи из asteriskcdrdb.cdr успешно удалены >> $LOG1 echo >> $LOG1 else echo Не удалось удалить старые записи из asteriskcdrdb.cdr >> $LOG1 echo >> $LOG1 exit 0 fi # Чистим asteriskcdrdb.cel (clean asteriskcdrdb.cel) if $MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "delete from asteriskcdrdb.cel where eventtime < DATE_SUB(NOW(), interval $NUMBER $TYPE);"; then echo Старые записи из asteriskcdrdb.cel успешно удалены >> $LOG1 echo >> $LOG1 else echo Не удалось удалить старые записи из asteriskcdrdb.cel >> $LOG1 echo >> $LOG1 exit 0 fi # Оптимизируем asteriskcdrdb (optimaze asteriskcdrdb table) if $MYSQLCHECK -u$MYSQL_USER -p$MYSQL_PASSWORD --optimize asteriskcdrdb; then echo asteriskcdrdb успешно оптимизирована >> $LOG1 echo >> $LOG1 else echo Не удалось оптимизировать базу asteriskcdrdb >> $LOG1 echo >> $LOG1 exit 0 fi echo >> $LOG1 echo "----------Были удалены следующие файлы и папки----------" >> $LOG1 # Чистим папки от файлов записи (Recording you want to delete, and empty folders) find /var/spool/asterisk/monitor/ -name "*.*" -type f -mtime +91 -print -delete >> $LOG1 find /var/spool/asterisk/monitor/ -type d -empty -print -delete >> $LOG1 # Выводим последние 10 000 записей из временного лога и копируем их в постоянный (Get the last 100,000 records from the temporary log file and copy it to permanent) grep -A 10000 "$data" $LOG1 >> $LOG # Отсылаем письмо с логами чистки в теле письма (Send email with progress report) echo "Отчёт об отчистке старых записей" | mail -s PBX-CDR-CLEANER $EMAIL < $LOG
Конструктивная критика приветствуется.
Да, для многих гуру этот скрипт сродни домашнему заданию для пятиклассника, но когда была потребность найти готовое решение, все отсылали читать мануалы, либо предлагали местами кривоватое решение. Посему пришлось взять основу и допиливать его до рабочего состояния самому.
Как удалить Asterisk/FreePBX с сервера
![]()
Всем привет! Иногда настаёт момент, когда необходимо удалить FreePBX или Asterisk. Например, для того чтобы использовать сервер, на котором они были установлены для других приложений или для того, чтобы начать всё «с чистого листа» после неудачного обновления/установки/манипуляций с конфигурационными файлами.
Поэтому в данной статье, мы покажем как правильно удалить FreePBX 13 версии и Asterisk версии 13.7.1.
Удаление FreePBX
Внимание! Описанные ниже действия полностью удалят FreePBX с вашего сервера без возможности восстановления. Поэтому рекомендуем сделать резервную копию
Внимание! Данные действия удалят только FreePBX, но оставят Asterisk. Однако, если Вы устанавливали Asterisk из источников и затем ставили на него FreePBX, то после удаления, настройки Asterisk не восстановятся.
Первое, что необходимо сделать – это подключиться к нашему серверу по SSH, далее есть два способа удаления FreePBX:
- Найдите или перезагрузите с помощью SVN файл ./install_amp и просто запустите следующую команду: ./install_amp --uninstall
- Удалите FreePBX и его компоненты вручную, данные действия применимы только на системах CentOS:
- Удаление таблиц MySQL
- Подключаемся к MySQL с правами root’а: mysql -u root
- Инициируем удаление таблиц asterisk и asteriskcdrdb:
DROP DATABASE asterisk;
DROP DATABASE asteriskcdrdb; - Выходим из MySQL: exit;
- Придаем забвению файлы, связанные с FreePBX, прописав следующие команды:
rm /usr/sbin/amportal
rm -rf /var/lib/asterisk/bin/*
rm -rf /var/www/html/*
rm /etc/amportal.conf
rm /etc/asterisk/amportal.conf
rm /etc/freepbx.conf
rm /etc/asterisk/freepbx.conf
rm -f /etc/asterisk/*.conf
- Удаление таблиц MySQL
На этом всё. Можете быть уверенными, что от FreePBX не осталось и следа… При попытке зайти на web-интерфейс, вас ожидает ошибка 404. Однако, Asterisk всё ещё доступен и работает.
Удаление Asterisk
Внимание! Описанные ниже действия полностью удалят Asterisk с вашего сервера без возможности восстановления. Поэтому рекомендуем сделать резервную копию рабочей системы.
Для того, чтобы удалить Asterisk, первым делом необходимо остановить процесс, связанный с ним и удалить соответствующие модули. Обычно необходимо остановить сам процесс Asterisk и связанные с ним процессы DAHDI (на более ранних версиях – Zaptel). Но не торопитесь останавливать DAHDI, он нам ещё понадобится. Остановим Asterisk:
service asterisk stop
Затем необходимо удалить драйверы, использующиеся DAHDI. Для того, чтобы проверить какие драйверы загружены – используем команду:
lsmod | grep dahdi
Видим, что DAHDI использует много подмодулей, все их необходимо удалить по порядку и завершить процедуру удалением самого DAHDI. Вводим следующие команды:
service dahdi stop
modprobe -r wctc4xxp modprobe -r wctdm24xxp
Повторяем для всех модулей, а в самом конце:
modprobe -r dahdi
Теперь приступаем к удалению Asterisk. Как только команды, которые описаны ниже будут введены – обратного пути нет:
rm -rf /etc/asterisk rm -f /etc/dahdi.conf rm -rf /var/log/asterisk rm -rf /var/lib/asterisk rm -rf /var/spool/asterisk rm -rf /usr/lib/asterisk
Готово, теперь Asterisk полностью удалён с Вашего сервера. Надеемся, что данная статья Вам помогла.
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.045 секунд. Запросов: 25.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Удаление (деинсталяция) Asterisk и FreePBX в Ubuntu 20.04 LTS


Данная статья проведёт вас по всем этапам удаления Asterisk и FreePBX, чтобы от них в системе не осталось и следа.
В нашей жизни иногда случаются ошибки и перемены, которые заставляют разрушать старое, чтобы начать всё с чистого листа, или исправить ситуацию. Порой, так случается, что обновление криво встало и сервер отказывается работать. Перепланировка машин также может привести к удалению неиспользуемого голосового сервера. В этих ситуация нужно уметь правильно удалить неиспользуемое приложение, чтобы очистить место, но при этом не навредить системе в целом.
Как мы знаем из статьи «Установка Asterisk 18 и FreePBX 16 на Ubuntu 20.04 LTS», установка проводится в два этапа. Первый — установка Asterisk, и второй — FreePBX. При удалении мы действуем в обратном направлении. Сперва удалим панель, затем — сервер ip-телефонии.
Внимание! Дальнейшие действия абсолютно полностью удалят FreePBX и Asterisk и их файлы настроек с сервера без возможности восстановления. Настоятельно рекомендуется сделать резервную копию настроек.
Удаление FreePBX
Отключаем панель
sudo systemctl stop freepbx