J'utilise le modem USB ZTE sur Natty Narwhal. Tout fonctionne bien, mais parfois, il est déconnecté. Je souhaite écrire un script Shell qui reconnecte le haut débit mobile s'il est déconnecté ou si les données reçues sont inférieures à 20 Ko après 5 secondes de connexion.
Ma question est donc de savoir comment activer/désactiver le haut débit mobile? Comment vérifier les données reçues? et comment activer/désactiver le service réseau?
note: commandes de terminal uniquement Ou si vous pouvez écrire un script, je vous en serai très reconnaissant.
J'ai créé un script Shell comme suit et l'ai mis dans Startup Applications
et cela fonctionne à merveille! Je suis heureux avec cela, mais si vous pouvez l'améliorer, je vous en serai très reconnaissant.
#!/bin/bash
while true; do
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^gsm:disconnected$"
if [ $? -eq 0 ]; then
#jdownloader is still in the download status so stop it because
#internet is disconnected and jdownloader won't resume download
#when connected again
#jdownloader --stop-download
#sometimes I can not get connected after disconnection when
#I click on <name of the network connection>. I have to disable
#and enable Mobile Broadband
nmcli -t nm wwan off
sleep 1
nmcli -t nm wwan on
sleep 1
nmcli -t con up id "Tata Docomo Internet"
#wait approximately 15 sec to get connected
#if anyone can add better command to check for it just comment it :-p
sleep 15
#now connected to internet so start download
#jdownloader --start-download
fi
#it does not worth keep it checking every millisecond.
#my connection will be reestablished within 5-15 seconds
sleep 2
#if anyone can code it better please feel free to comment
#TO-DO:: check for data received. if data < 15 KB after 20 seconds of connection
#reconnect mobile broadband connection
done
Ouvrez la fenêtre du terminal et tapez:
Sudo gedit /etc/init.d/mobile-broadband-connect
Copiez et collez ensuite ceci (à modifier selon vos besoins):
Remarque: Remplacez le <Your Mobile Broadband Connection Name Here>
par le nom de votre connexion.
#!/bin/bash
case "$1" in
start)
echo "Starting Mobile Broadband Connection."
while true; do
# testing...to see if gsm is on the list of active devices
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^gsm:disconnected$"
if [ $? -eq 0 ]; then
break
else
# not connected, sleeping for a second
sleep 1
fi
done
# now once GSM modem shows up, run these commands
nmcli -t nm wwan on
nmcli -t con up id <Your Mobile Broadband Connection Name Here>
;;
stop)
echo "Stopping Mobile Broadband Connection."
nmcli -t con down id <Your Mobile Broadband Connection Name Here>
nmcli -t nm wwan off
;;
status)
# Check to see if the process is running with Network Manager dev status
nmcli -p dev
;;
*)
echo "Mobile Broadband Startup Service"
echo $"Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
Modifiez les autorisations de ce fichier pour exécution:
Sudo chmod +x /etc/init.d/mobile-broadband-connect
Pour exécuter ce script a un service, faites:
Sudo update-rc.d mobile-broadband-connect defaults
Le script est enregistré en tant que service de démarrage du système afin que vous puissiez démarrer, arrêter ou vérifier le statut du script avec:
Sudo service mobile-broadband-connect start
Sudo service mobile-broadband-connect stop
Sudo service mobile-broadband-connect status
Redémarrez pour terminer l'installation et la connexion automatique.
Terminé ...
#!/bin/sh
echo "Starting Mobile Broadband Connection. Tej"
while true; do
# testing...to see if gsm is on the list of active devices
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^gsm:disconnected$"
if [ $? -eq 0 ]; then
break
else
# not connected, sleeping for a second
sleep 1
fi
done
# now once GSM modem shows up, run these commands
while true; do
# Enable Mobile Broadband
nmcli -t nm wwan on
# Connect to network
nmcli -t con up id "BSNL/CellOne New GPRS/3G 1"
# Check status if connected or not
nmcli -f device,state -t dev | grep ttyACM0 | awk -F':' '{print $2}' | { read status; }
echo $status;
if [$status == "connected"]; then
break
else
# not connected, sleeping for a second
nmcli -t nm wwan off
sleep 1
fi
done