Gli script (per Linux) sotto riportati, prelevati dalla rete, permettono l’aggiornamento in automatico dei file DExtra_Hosts.txt, DPlus e DCS dal database che gestisce l’elenco dei reflector XLX che si autoregistrano. Il contenuto dei file NON viene cancellato ma sono aggiunti i record mancanti. Per un aggiornamento completo ripulire a mano i file affinché il processo, trovandoli vuoti, provveda a ripopolarli. Di seguito i comandi:
copiare i file interessati nella cartella temporanea del nostro hotspot/ripetitore prelevandoli dalla cartella /usr/local/etc
$ sudo -s
# cd /tmp
prestare attenzione al “.” al termine del comando (c’è uno spazio)
# cp /usr/local/etc/DExtra_Hosts.txt .
# cp /usr/local/etc/DPlus_Hosts.txt .
# cp /usr/local/etc/DCS_Hosts.txt .
nel caso volessimo avere i file vuoti possiamo evitare di ricopiare gli originali, bensì creare i nuovi con il comando “touch“
Creare il primo script
# nano main.sh
e copiarvici il seguente contenuto:
#!/bin/bash
cd /tmp
wget -O /tmp/xlx_Hosts.txt http://
XLXFILE=/tmp/xlx_Hosts.txt
echo “Merging XLX DPlus reflectors with master list…”
export HOSTFILE=/tmp/DPlus_Hosts.txt
export REFTYPE=”REF”
cat $XLXFILE | xargs -r -l1 /usr/local/bin/checkref
echo “Merging XLX DExtra reflectors with master list…”
export HOSTFILE=/tmp/DExtra_Hosts.txt
export REFTYPE=”XRF”
cat $XLXFILE | xargs -r -l1 /usr/local/bin/checkref
echo “Merging XLX DCS reflectors with master list…”
export HOSTFILE=/tmp/DCS_Hosts.txt
export REFTYPE=”DCS”
cat $XLXFILE | xargs -r -l1 /usr/local/bin/checkref
rendere eseguibile il file creato
# chmod 755 main.sh
creare il secondo script con il comando
# nano /usr/local/bin/checkref
e copiarvici il contenuto:
#!/bin/bash
REF=”$1″
TEST=`echo $REF | grep ^#`
if ! [ “$TEST” = “” ]; then
exit 0
fi
TEST=`echo $REF | grep $REFTYPE`
#echo -n “$REF, $TEST, “
if [ “$TEST” = “” ]; then
CHECK=””
exit 0
else
REF=”^$REF”
CHECK=`cat $HOSTFILE | grep $REF`
fi
if ! [ “$CHECK” = “” ]; then
echo “Skipping duplicate entry $1”
# echo -n “$CHECK, “
exit 0
fi
echo “$@”
echo -e “$1\t$2” >> $HOSTFILE
rendere quindi eseguibile questo secondo script
# chmod 755 /usr/local/bin/checkref
ed eseguire il processo avviando il primo script
# sh /tmp/main.sh
si avrà un output simile a questo:
–2016-04-16 20:28:32– http://xlxapi.rlx.lu/api.php?do=GetReflectorHostname
Resolving xlxapi.rlx.lu (xlxapi.rlx.lu)… 193.168.82.26
Connecting to xlxapi.rlx.lu (xlxapi.rlx.lu)|193.168.82.26|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 4516 (4.4K) [text/plain]
Saving to: `/tmp/xlx_Hosts.txt’
100%[=================================================================================================================================>] 4,516 –.-K/s in 0s
2016-04-16 20:28:32 (32.1 MB/s) – `/tmp/xlx_Hosts.txt’ saved [4516/4516]
Merging XLX DPlus reflectors with master list…
che indentifica il corretto procedere nell’aggiornamento dei dati, attendere quindi il completamento della lavorazione. Alla fine i file risulteranno aggiornati e potremo ricopiarli nella loro posizione corretta dando i seguenti comandi (prima procedo con una copia del file originale rinominandolo .OLD):
# mv /usr/local/etc/DExtra_Hosts.txt /usr/local/etc/DExtra_Hosts.OLD
# cp /tmp/DExtra_Hosts.txt /usr/local/etc/DExtra_Hosts.txt
# mv /usr/local/etc/DPlus_Hosts.txt /usr/local/etc/DPlus_Hosts.OLD
# cp /tmp/DPlus_Hosts.txt /usr/local/etc/DPlus_Hosts.txt
# mv /usr/local/etc/DCS_Hosts.txt /usr/local/etc/DCS_Hosts.OLD
# cp /tmp/DCS_Hosts.txt /usr/local/etc/DCS_Hosts.txt
Si può creare facilmente un automatismo, magari utilizzando CRON per programmare l’aggiornamento una volta alla settimana.