Comment activer / désactiver le haut débit mobile depuis le terminal?

8

J'utilise le modem USB ZTE sur Natty Narwhal. Tout fonctionne bien, mais parfois il se déconnecte. Je veux é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.

Rahul Virpara
la source

Réponses:

8

Ouvrez la fenêtre du terminal et saisissez:

sudo gedit /etc/init.d/mobile-broadband-connect

Copiez et collez ensuite cela (changez 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 l'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 l'état 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.

  • Redémarrez votre système pour terminer l'installation.
  • Après le redémarrage, il faut jusqu'à 60 secondes avant que le périphérique USB ne soit actif.
  • Lorsqu'il est actif - La connexion haut débit mobile sera activée et automatiquement connectée.

Terminé ...

Octávio Filipe Gonçalves
la source
il faut une éternité pour arrêter après l'installation de ce service. Je veux dire, il ne s'arrête pas lorsque j'arrête mon ordinateur portable. Il collait au logo ubuntu. J'ai essayé sudo rm /etc/init.d/mobile-broadband-connect && sudo update-rc.d mobile-broadband-connect removeet supprimé ce service. Ensuite, tout s'est bien passé. Comment s'en débarrasser?
Rahul Virpara
Ne mettez pas cela comme un service. Démarrez-le manuellement.
Octávio Filipe Gonçalves
si je le démarre manuellement, continuera-t-il à fonctionner en arrière-plan et se connectera-t-il si le haut débit mobile est déconnecté?
Rahul Virpara
2

J'ai créé un script shell comme suit et l'ai mis Startup Applicationset cela fonctionne comme un charme! Je suis content de 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
Rahul Virpara
la source
1
#!/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
tejas
la source