Дмитрий Рашевский
18.02.2019
272

Настройка NFS клиента и сохранение записей и бэкапов на NFS шару

Настройка NFS клиента и сохранение записей и бэкапов на NFS шару Введение Настройка NFS клиента Скрипт для отправки записей на NFS шару Скрипт для отправки бекапов на NFS шару Введение Многие скорее всего сталкивались, что на сервере астериска не всегда достаточно объема HDD. Особенно если Астериск крутится в облаке ДЦ. За каждый дополнительный гигабайт необходимо […]

Настройка NFS клиента и сохранение записей и бэкапов на NFS шару

  1. Введение
  2. Настройка NFS клиента
  3. Скрипт для отправки записей на NFS шару
  4. Скрипт для отправки бекапов на NFS шару

Введение

Многие скорее всего сталкивались, что на сервере астериска не всегда достаточно объема HDD. Особенно если Астериск крутится в облаке ДЦ. За каждый дополнительный гигабайт необходимо доплачивать доп. рубли. В данном случае удобно будет использовать сетевую шару. В данной статье будет описано как настроить NFS клиента на сервере астериска, а также по времени отправлять записи разговоров и бекапы сервера на удаленный HDD (NFS сервер).

Данная статья подготовлена для систем, где установлен freepbx. Если у вас голый астериск. Смотрите внимательно пути хранения ваших бекапов и записей разговоров

Настройка NFS клиента

Сначала создадим директорию, в которую будем понтировать NFS

# mkdir /mnt/aster/share

Если был создан доступ к NFS с авторизацией, необходимо создать файл с авторизационными данными

# vim   /root/.smbcredentials   

И заполним файл следующим образом:

 username=TEST\aster   password=VERYWEAKPASSWORD   
Обязательно поменяйте на свои данные. Которые вам предоставили

В статье используется текстовый редактор VIM.  Для того чтобы выйти из vim:

  • без сохранения используйте сочетание клавиш Shift+Z+Q
  • с сохранением Shift+Z+Z

После создания файла с авторизационными данными необходимо примонтировать к созданной ранее директории сетевую «шару»

# /sbin/mount.cifs   //nfs_server_ip/aster /mnt/aster/ -o
credentials=/root/.smbcredentials   
Параметр -o определяет где лежит файл с авторизационными данными

Проверим примонтированный раздел командой df -h

[root@test ~]# df -h   Filesystem
                                 Size  Used   Avail  Use%   Mounted on
...
//192.168.166.192/aster          1.9T  1.7G    1.9T   1%    /mnt/aster/   
Free space

Также проверим что туда помещаются файлы:

 [root@test ~]# touch   /mnt/aster/file    

Проверяем наличие созданного файла

   [root@test ~]# ls -la   /mnt/aster/ | grep file   
File
В приведенных скриншотах используется другой hostname, ip адрес и название смонтированных папок. Будьте внимательны!

Скрипт для отправки записей на NFS шару

Для того, чтобы файлы записей астериска попадали на NFS сервер, напишем скрипт, который будет раз в 5 минут отправлять файлы в нужную нам директорию.

#!/bin/bash
export
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
datedir=$(date   +"%Y/%m/%d")
if ! [ -d /mnt/aster/$datedir ];   then
        mkdir -p /mnt/aster/$datedir
fi
cd   /var/spool/asterisk/monitor/$datedir
for i in $( find *.mp3   ); do
           mv /var/spool/asterisk/monitor/$datedir/$i   /mnt/aster/$datedir/$i
           ln -s /mnt/aster/$datedir/$i   /var/spool/asterisk/monitor/$datedir/$i
           chown asterisk.   /var/spool/asterisk/monitor/$datedir -R
done  
  1. При выполнении скрипта проверяется, созданы ли директории /mnt/aster/ подпапки определенные в переменной date. К примеру, /mnt/aster/2018/12/05. Если таковых не найдется. То создает данные папки.
  2. Переходит в директорию /var/spool/asterisk/monitor/$datedir, где $datedir — переменная, определяющая текущую дату в формате ГГГГ/ММ/ДД
  3. В цикле находит все файлы с расширением .mp3 в данной директории
  4. Перемещает файлы в сетевую папку
  5. Создает символьную ссылку в директории /var/spool/asterisk/monitor/$datedir/ на файл, который был перемещен в сетевую папку
  6. Устанавливает права на символьные ссылки

Рис3. Monitor (pic3.png)

Теперь поместим исполнение этого файла в crontab

*/20 * * * *   /root/tonfs.sh >/dev/null 2>&1   
Обязательно сделайте файл исполняемым
chmod +x /root/tonfs.sh

Скрипт для отправки бекапов на NFS шару

С скриптом для бекапов поступаем также, как и для записей разговоров, только меняются пути. Вместо пути к записям указываем путь к бекапам

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
if ! [ -d /mnt/aster/PBX_Backups ];   then
mkdir -p /mnt/aster/PBX_Backups
fi
cd /var/spool/asterisk/backup/Remote_backup
for i in $( find *.tgz   ); do
mv /var/spool/asterisk/backup/Remote_backup/$j   /mnt/aster/PBX_Backups/$j
ln -s /mnt/aster/PBX_Backups/$j   /var/spool/asterisk/backup/Remote_backup/$j
chown asterisk. /var/spool/asterisk/backup/Remote_backup -R
done   
  1. При выполнении скрипта проверяется, создана ли в директории /mnt/aster/ папка PBX_Backups. Если таковая не находится. То создает её.
  2. Переходит в директорию /var/spool/asterisk/backup/Remote_backup
  3. В цикле находит все файлы с расширением .tgz в данной директории
  4. Перемещает файлы в сетевую папку
  5. Создает символьную ссылку в директории /var/spool/asterisk/backup на файл, который был перемещен в сетевую папку
  6. Устанавливает права на символьные ссылки
Бэкапы

Теперь поместим исполнение этого файла в crontab

*/20 * * * * /root/backapstonfs.sh >/dev/null 2>&1   
Обязательно сделайте файл исполняемым
chmod +x /root/backapstonfs.sh
 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices