Logrotate per i Reflector

In questo articolo abbiamo visto come comprimere i file di Log di HBLink ed HBMonitor.
Adesso però vogliamo fare pulizia sui file di log generati dai nostri Reflector e Bridge
XLX / YSF / NXDN / P25 / SVX / APRS .
Come avrete notato, ogni giorno viene generato un nuovo file che ha come estensione la data corrente (per esempio per il gateway Aprs è APRSGateway-2020-09-23.log) in /var/log/mmdvm .
Non è pensabile cancellare manualmente i vari file di log a cadenze regolari, per cui ci siamo messi a studiare come poterlo fare con degli script di automatismo.
Anche qui interviene il fantomatico commando logrotate ed abbiamo generato il seguente script:
nano /etc/logrotate.d/aprsgateway inserendo il seguente codice:

/var/log/mmdvm/APRSGateway.log
{
daily
rotate 7
maxage 7
dateext
dateformat -%Y-%m-%d
extension .log
ifempty
create

firstaction
today=$(date +"%Y-%m-%d")
filename="/var/log/mmdvm/APRSGateway-$today.log"
if [ -f "$filename" ]; then
mv /var/log/mmdvm/APRSGateway-$today.log /var/log/mmdvm/APRSGateway.log
fi
endscript

}

Ora si tratta di far in modo che al suo avvio questo script possa trovare il file /var/log/mmdvm/APRSGateway.log altrimenti andrebbe in errore.
Quindi dovremo semplicemente eseguire:
cp /var/log/mmdvm/APRSGateway-2020-09-23.log /var/log/mmdvm/APRSGateway.log
Fatto ?
Facciamo un test del nostro script eseguendo:
logrotate –force /etc/logrotate.d/aprsgateway
Se tutto è andato a buon fine e non visualizziamo errori di esecuzione, basterà dare
ls -la /var/log/mmdvm/APRS*.log per vedere che esistono solo 7 file e che APRSGateway.log contiene 0 byte.

Questo esempio può essere usato anche per tutti gli altri servizi dei nostri Reflector, MMDVM_Bridge, Analog_Bridge con opportuni adattamenti.

Server Log

In questi giorni di tranquillità fra lavoro e radio, ci siamo dedicati ad esaminare alcune parti dei nostri sistemi HBLink ed HBMonitor ed abbiamo notato che le dimensioni dei file di Log generati dai due software erano notevoli.
Da qui è nata la prima stesura di un sistema di compressione settimanale dei log non necessari a cura di Roberto IV3JDV.
Gli script sono stati eseguiti su macchine di test e dopo il loro corretto funzionamento, sono stati resi pubblici a tutti i colleghi di HBLink Italia, affinché li installassero sui loro server.
Come nostra consuetudine, li rendiamo pubblici anche sul Blog di HBLink Italia, affinché possano essere utilizzati e modificati a piacere per rendere tutti i nostri server più leggeri e puliti.
Tutti i sistemi Linux/Debian hanno al loro interno una directory /etc/logrotate.d che contiene degli script che devono essere eseguiti dal sistema operativo in determinati momenti della giornata / settimana / mese .
Si tratta quindi di creare al suo interno gli script per HBLink ed HBMonitor e salvarli.
In questo modo il sistema saprà che deve eseguirli e fare ciò che noi gli abbiamo imposto.
Il primo file da creare è:
nano /etc/logrotate.d/hblink inserendo il seguente codice:

# Logrotate file for HBLink
/var/log/hblink.log
{
compress
delaycompress
missingok
notifempty
rotate 7
create 0600 root root
}

mentre per il secondo file useremo:
nano /etc/logrotate.d/hbmon inserendo il codice:

# Logrotate file for HBMonitor
/var/log/hbmon.log {
compress
delaycompress
missingok
notifempty
rotate 7
create 0600 root root
}

Ora non ci resta che attendere 7 giorni per vedere il risultato finale oppure eseguendo:
logrotate –force /etc/logrotate.d/hbmon e logrotate –force /etc/logrotate.d/hbmon