Utilizzare uno storage diverso per il salvataggio delle registrazioni montando direttamente sul sistema una directory esterna può portare dei problemi inaspettati, perché se per una volta non si dovesse riuscire a montare l'unità esterna, tutti i file verranno salvati in locale andando a creare una discrepanza tra i salvataggi oltre che a saturare il disco non essendo sotto controllo.


Per ovviare a questo genere di derive, è possibile effettuare un backup periodico che prenda solamente il percorso delle registrazioni e di lasciare sulla macchina solamente le registrazioni dell'ultimo mese schedulando un cron che si occupi di fare questa eliminazione.


In questo modo lo storico si avrà nei file di backup dedicati e sulla macchina rimarranno solo le registrazioni dell'ultimo periodo e non si saturerà lo spazio disco.


Quindi per creare un backup che ogni giorno salvi solamente il path indicato è possibile seguire i questi passaggi:


Per effettuare le configurazione del backup per il solo path delle registrazioni sarà necessario creare un nuovo backup chiamato registrazioni e configurarlo come da manuale per salvare il tutto sulla destinazione preferita con l'engine preferito.

Questa cosa è configurabile dalla sezione backup del Nethserver su cockpit.


Una volta creato il backup, per definire per quel singolo backup l'inclusione del solo path delle registrazioni e l'esclusione di tutto il resto basterà creare 2 file nel path seguente:


/etc/backup-data/


i file dovranno chiamarsi come il nome dato al backup uno con l'aggiunta .include e l'altro con l'aggiunta .exclude

Quindi nel file di testo registrazioni.include inserire il path delle registrazioni delle chiamate /var/spool/asterisk/monitor/ mentre nel file registrazioni.exclude non scrivere nulla.


Questa procedura è indicata nel manuale di Nethserver al link seguente:


https://nethserver.docs.nethesis.it/it/v7/backup_customization.html#override-inclusions-and-exclusions


Per eliminare le registrazioni più vecchie di un certo tempo e quindi per tenere solo il periodo interessato sulla macchina, sarà necessario applicare questa configurazione:


Per eliminare le registrazioni è possibile pensare ad un opportuno job del cron:


vi /etc/cron.daily/nethvoice_remove_old_recordings

Il contenuto sarà (l'esempio considera di mantenere le registrazioni degli ultimi 30 giorni ma è possibile scegliere il periodo in modo arbitrario):


#!/bin/bash
/usr/bin/mysql asteriskcdrdb -e 'UPDATE `cdr` SET `recordingfile` = "" WHERE `recordingfile` != "" AND `calldate` < NOW() - INTERVAL 30 DAY' 2>&1 >/dev/null
/usr/bin/find /var/spool/asterisk/monitor/ -name "*.wav" -mtime +30 -exec /bin/rm {} \;

I permessi dello script vanno modificati opportunamente perché possa essere eseguibile:


chmod a+x /etc/cron.daily/nethvoice_remove_old_recordings

Infine è consigliabile includere nel backup della configurazione il file appena creato: 


echo -e "/etc/cron.daily/nethvoice_remove_old_recordings" >> /etc/backup-config.d/custom.include



NOTA: è consigliabile eseguire un backup prima di mettere lo script in produzione e testare che dopo l'esecuzione dello script il risultato sia quello desiderato.