Script para mover os rexistros de chamadas Asterisk de RAM

Movendo os rexistros de chamadas almacenadas na RAM Asterisk

Este artigo presenta un guión mellorado para mover ficheiros (neste caso, as chamadas telefónicas feitas a través Asterisk) arquivos abertos sobre pedra (chama en marcha). É moi típico ter que facer gravacións de chamadas desde Asterisk nun call center, por exemplo,.

Para este script eu usei como unha base que eu atope Aquí, grazas ao seu autor.

Lembre antes de iniciar as cores significan aplicacións e sistemas:

textos escritos na liña de comandos: azul
Saída da liña de comandos: verde
Os nomes de ficheiro e contido do arquivo: marrón

xustificación

Asterisk é un programa de telefonía (amplamente utilizado en VoIP) para a construción dunha central con múltiples funcionalidades, gravación de chamadas, incluíndo. normalmente, para o desempeño, gravacións de chamadas realizala las nunha unidade de memoria RAM, ou disco RAM (se queres saber como crear un pode seguir esta ligazón), logo, despois de certos intervalos de tempo, permanentemente almacenados nun disco, por exemplo, nun servidor NAS. así, Tamén evitar a deterioración implicados na unidade do esforzo continuo da escrita a través da gravación de varias chamadas.

Claro que isto é un risco; un fallo eléctrico e as gravacións son perdidos. Por eso conviene guardar de cuando en cuando esas grabaciones en un lugar definitivo.

Este script lo he adaptado a mis necesidades. Todas las grabaciones se guardan en un subdirectorio que se crea cada día, con la fecha del mismo, en formato gsm. El script va buscando inicialmente ese subdirectorio, mira dentro de él los archivos que no están siendo utilizados, y finalmente los mueve a su ubicación definitiva.

Si no tuviésemos la precaución de mirar primero si están siendo utilizados o no, se podrían mover archivos incompletos, con la pérdida de información que ello supone.

Desarrollo

El script que propongo y que a mí me funciona 😉 es el siguiente:


#!/bin/bash
# Para mover las llamadas grabadas en una unidad RAM
# Comprobe o contido daquela unidade e pasa a un disco duro
# temos un directorio naquela unidade,
# con subdirectorios que son xerados diariamente
## As variables con directorios para usar
RAMDIR ="/tmp / discoram"
ALMACÉN ="/mnt / servidor_almacen" #unidade remota, premontado, definitivo almacén
CD $ RAMDIR
ls -1 d */ > listado.borrable
#cada mentres día lendo un directorio en liña diariamente, arquivo extraído "listado_borrable"
facer # Aquí comeza a parte de si mesmos arquivos en movemento, única GSM formato de son
for i in $(ls -1 $RAMDIR / $ día / *. Gsm) ; facer
lsof $ i #comprueba arquivos abertos para non moverse aínda
value = $? #estado de saída, se 0 o ficheiro está aberto
se [ $valor -ne 0 ] ; logo
se [ -d $ almacén / $ day ] ; logo
gravacións de eco cartafol verificada
máis
mkdir almacén / $ day $
#solo crea o cartafol no seu caso
fi
mv $ i $ almacén / $ day
fi
feito
$ Rmdir día 2> /dev / null # se eliminar está baleiro
feito < #aqui listado.borrable remata mentres

 

Pode baixa-lo Aquí se é máis cómodo.

Non esqueza comentar e contribuír coas súas solucións personalizadas, sempre pode mellorar.


Sobre Anxo Calvo

Apaixonado sobre ciencia e tecnoloxía. Profesor, autor de manuais e sistemas e director de comunicacións.

Deixar unha resposta