Un script admohblink

Ou comment faire pour faire rĂ©-apparaĂźtre votre port DMO (ou DUP) dans le menu dĂ©roulant dâune distribution Pi-Star ?
Contenus de l'article
Contexte
Vous avez connectĂ© votre hotspot sur un serveur HBLink et le sysop vous a attribuĂ© un port (udp) sur ce serveur et vous nâarrivez pas Ă le trouver dans le menu dĂ©roulant « DMR Master » de votre hotspot. Câest normal !
Une fois un port attribué à un indicatif, il disparaßt de cette liste. Alors comment faire pour vous connecter sur votre port (et pas celui du voisin)⊠?
Solution
Par lâexĂ©cution de ce script, vous allez retrouver votre port personnel dans le menu dĂ©roulant de votre hotspot.
Comment procéder ?
Installation :
Il suffit de copier ce script dans le rĂ©pertoire home du user pi-star via votre Ă©diteur prĂ©fĂ©rĂ©. Le mien Ă©tant âviâ (lâĂ©diteur unix/linux ancestral), lancer les commandes suivantes :
– rpi-rw (pour basculer la partition en lecture-Ă©criture)
– vi admohblink (appuyer sur la lettre i pour passer en insertion)
– coller le script prĂ©cĂ©demment sĂ©lectionnĂ©
– ensuite appuyer sur ‘Escape‘ puis faites « :wq » (double-point w q) pour sauvegarder et quitter âviâ
Si tout sâest bien passĂ©, vous devriez avoir ceci :
pi-star@jumbobgo(rw):~$ ls -l admohblink
-rw-r–r– 1 pi-star pi-star 1525 Nov 3 10:21 admohblink
Il faut maintenant rendre le script exécutable par la commande : chmod u+x admohblink
pi-star@jumbobgo(rw):~$ chmod u+x admohblink
pi-star@jumbobgo(rw):~$ ls -l admohblink
-rwxr–r– 1 pi-star pi-star 1525 Nov 3 10:21 admohblink
Exécution :
Le script nĂ©cessite de lui passer 3 arguments : le nom du port, le mot de passe du serveur, le numĂ©ro de port udp qui vous a Ă©tĂ© attribuĂ©. Sans arguments, le script affiche lâusage et sâarrĂȘte.
pi-star@jumbobgo(rw):~$ ./admohblink
USAGE : ./admohblink <DUPxx|DMOxx> <PASSWORD> <Port>
Par dĂ©faut, le script donne son rĂ©sultat sur lâĂ©cran. Comme toute commande sous unix/linux, il suffit de rediriger la sortie du script dans un fichier, pour obtenir un nouveau fichier DMR_Hosts.
Le script va recopier le contenu du fichier DMR_Hosts.txt et y ajouter une ligne avec vos paramÚtres à la fin de la section des ports belges (au besoin et si la demande est là , une version plus évoluée sera développée pour les autres pays).
pi-star@jumbobgo(rw):~$ ./admohblink DMO66 PASSWORD 55566 > newdmrhost
pi-star@jumbobgo(rw):~$ ls -l newdmrhost
-rw-r–r– 1 pi-star pi-star 57635 Nov 3 10:45 newdmrhost
pi-star@jumbobgo(rw):~$ grep -i belgique newdmrhost
HB_FR_BELGIQUE_DMO55 0000 51.75.249.214 PASSWORD 55555
HB_FR_BELGIQUE_DMO56 0000 51.75.249.214 PASSWORD 55556
HB_FR_BELGIQUE_DMO64 0000 51.75.249.214 PASSWORD 55564
HB_FR_BELGIQUE_DMO68 0000 51.75.249.214 PASSWORD 55568
HB_FR_BELGIQUE_DMO66 0000 51.75.249.214 PASSWORD 55566
Le script a recréé un fichier contenant bien une ligne DMO66 comme passé en paramÚtre. Elle sera dÚs lors présente dans le menu déroulant.
Il suffit donc de mettre ce nouveau fichier ânewdmrhostâ avec le bon nom Ă la bonne place, en faisant une copie de backup par sĂ©curitĂ©.
pi-star@jumbobgo(rw):~$ sudo cp /usr/local/etc/DMR_Hosts.txt /usr/local/etc/DMR_Hosts.txt_bak
pi-star@jumbobgo(rw):~$
pi-star@jumbobgo(rw):~$ ls -l /usr/local/etc/DMR_Ho*
-rw-r–r– 1 root bin 57630 Nov 3 03:25 /usr/local/etc/DMR_Hosts.txt
-rw-r–r– 1 root bin 57463 Nov 3 03:25 /usr/local/etc/DMR_Hosts.txt.20201103
-rw-r–r– 1 root bin 57630 Nov 3 10:54 /usr/local/etc/DMR_Hosts.txt_bak
pi-star@jumbobgo(rw):~$ sudo cp newdmrhost /usr/local/etc/DMR_Hosts.txt
pi-star@jumbobgo(rw):~$ ls -l /usr/local/etc/DMR_Ho*
-rw-r–r– 1 root bin 57635 Nov 3 10:55 /usr/local/etc/DMR_Hosts.txt
-rw-r–r– 1 root bin 57463 Nov 3 03:25 /usr/local/etc/DMR_Hosts.txt.20201103
-rw-r–r– 1 root bin 57630 Nov 3 10:54 /usr/local/etc/DMR_Hosts.txt_bak
Connectez-vous sur votre hotspot, sur la page Configuration, et vous devriez avoir votre port dans le menu déroulant DMR Master. Si pas, retournez sur le Dashboard puis revenez sur la page Configuration.
Voici le script :
Par sĂ©curitĂ©, le script sâarrĂȘte si la ligne du port existe dĂ©jĂ ou si le fichier DMR_Hosts.txt nâexiste pas. Il est tout Ă fait possible de le âcrontabiliserâ moyennant un petit sur-script…
#!/bin/bash
#
# This script add a HBLink DMO/DUP port in the DMR_Hosts.txt file of Pi-star distribution only
# for HB_FR_BELGIQUE server.
# It may be placed in crontab with redirection to dev/null to avoid getting mail from crontab process
# 73, Benjamin – ON5BGO – Ver 1.0 – 01.11.2020
#
# Sample line:
# HB_FR_BELGIQUE_DMO68 0000 51.75.249.21 PASSWORD 55568
#
###########################################################################################################
DMRHOST=/usr/local/etc/DMR_Hosts.txt
if [ ! -e « $DMRHOST » ]; then
echo « DMR host file doesn’t exist ! Endind… »
exit
fi
if [ $# -lt 3 ]; then
echo « USAGE : $0 <DUPxx|DMOxx> <PASSWORD> <Port> »
else
NEWPORT=$1
PASSW=$2
UDPPORT=$3
zz=$(grep HB_FR_BELGIQUE $DMRHOST | grep $NEWPORT)
if [ -n « $zz » ]; then
echo
echo « The port DMO/DUP already exists. No more action. Bye… »
echo
exit
fi
awk -v newport=$NEWPORT -v passw=$PASSW -v udpport=$UDPPORT ‘
BEGIN { ctrBE=0; ctrOT=0 }
$1 ~ /HB_FR_BELGIQUE/
{
delete hb_array;
split($1, hb_array, »_ »);
hb_array[4]=newport;
newlinedmo=hb_array[1] »_ »hb_array[2] »_ »hb_array[3] »_ »hb_array[4] »\t\t »$2″\t »$3″\t\t\t »passw »\t »udpport;
print $0;
ctrBE=ctrBE+1;
ctrOT=0;
}
$1 !~ /HB_FR_BELGIQUE/ && ctrBE==0 {
print $0;
ctrOT=ctrOT+1;
}
$1 !~ /HB_FR_BELGIQUE/ && ctrOT==0 && ctrBE > 0 {
print newlinedmo;
ctrOT=ctrOT+1;
ctrBE=0;
}
‘ $DMRHOST
fi
Fichier script : admohblink.sh
admohblink.sh
Au plaisir, nâhĂ©sitez pas Ă me contacter pour tous renseignement, critiques ou suggestions.
73, Benjamin â ON5BGO