C'est une meilleure solution au problème précédent.
J'ai créé 2 scripts, le premier est le suivant...
sudo /home/{votre nom d'utilisateur}/UMM.sh
En lançant ceci "Dans le Terminal", si vous créez une icône, vous pourrez entrer votre mot de passe sudo.
Le fichier UMM.sh qu'il appelle est le suivant... Pour le faire fonctionner pour vous, vous devrez lire et changer les choses en haut du script. Vous devrez également peut-être modifier certaines lignes sleep
pour correspondre à votre situation.
Amusez-vous bien !
#!/bin/bash
# *****************************************************************
#Changez les valeurs suivantes en fonction de votre type de connexion et de votre nom
#Exécution de 'nmcli -t -f TYPE,STATE dev'
#cdma ou gsm (à éditer ci-dessous)
ConType="cdma"
#Exécution de 'nmcli -t -f NAME,TYPE con'
#Le nom de votre connexion dans le gestionnaire de réseau (à éditer ci-dessous)
ConName="connexion Zantel"
#Exécution de 'lsusb'
#Obtenez l'ID du vendeur et du modèle pour votre modem (à éditer ci-dessous)
USB_Vendor=12d1
USB_Product=1001
#Exécution de 'ifconfig'
#Obtenez la connexion Internet (à éditer ci-dessous)
IntCon=ppp0
# ******************************************************************
Network_State=$(nmcli -t -f TYPE,STATE dev)
echo -e
echo -e "État du réseau actuel: \r"
echo $Network_State
i=0
error_count=0
#défaut 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0
while true; do
#Tout d'abord déterminer la nature du problème s'il existe
#Vérifiez si notre type de connexion existe même
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType
if [ $? -eq 0 ]; then
#Vérifiez si le WWAN est activé
MT=C nmcli -t -f WWAN nm | grep -q "enabled"
if [ $? -eq 0 ]; then
#Vérifiez si nous avons une connexion ppp0
MT=C ifconfig | grep -q $IntCon
if [ $? -eq 0 ]; then
error_count=$error_count
else
dt=$(date)
echo À $dt nous n'avons pas de connexion $IntCon...
echo Tentative de démarrage de $ConName
nmcli -t con up id "$ConName"
sleep 5
MT=C ifconfig | grep -q $IntCon
if [ $? -eq 0 ]; then
#error_count=0
i=$Good_connect_count
else
error_count=$[$error_count+1]
echo "$error_count Erreur(s) d'affilée"
fi
fi
else
dt=$(date)
echo À $dt nous n'avons pas de WWAN... tentative d'activation
nmcli -t nm wwan on
sleep 5
MT=C nmcli -t -f WWAN nm | grep -q "enabled"
if [ $? -eq 0 ]; then
error_count=$error_count
else
error_count=$[$error_count+1]
echo "$error_count Erreur(s) d'affilée"
fi
fi
else
dt=$(date)
echo À $dt nous n'avons pas notre connexion $ConType
echo Redémarrer le périphérique USB $USB_Vendor : $USB_Product
#Réinitialiser le modem USB
usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
error_count=0
sleep 25
fi
if [ $error_count -ge 3 ]; then
dt=$(date)
echo Nous avons un problème. Redémarrage du périphérique USB à $dt.
usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
sleep 25
error_count=0
i=0
fi
i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
dt=$(date)
if [ $pingtest -eq 0 ]; then
MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
if [ $? -eq 0 ]; then
echo À $dt la connexion est établie et le test de ping a réussi !
#error_count=0
i=0
pingtest=1
else
echo La connexion est présente mais je ne peux pas confirmer la connectivité du ping. Nouvelle tentative...
error_count=$[$error_count+1]
echo "$error_count Erreur(s) d'affilée"
fi
else
pingtest=0
MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
if [ $? -eq 0 ]; then
echo À $dt la connexion est établie et le test HTTP a réussi !
error_count=0
i=0
else
echo La connexion est présente mais je ne peux pas confirmer la connectivité HTTP. Nouvelle tentative...
error_count=$[$error_count+1]
echo "$error_count Erreur(s) d'affilée"
fi
fi
fi
done