Wie aktiviere / deaktiviere ich mobiles Breitband vom Terminal?

8

Ich benutze das ZTE USB Modem bei Natty Narwhal. Alles funktioniert gut, aber manchmal wird es getrennt. Ich möchte ein Shell-Skript schreiben, das das mobile Breitband wieder verbindet, wenn die Verbindung getrennt wird oder die empfangenen Daten nach 5 Sekunden Verbindung weniger als 20 KB betragen.

Meine Frage ist also, wie man mobiles Breitband aktiviert / deaktiviert. Wie überprüfe ich, ob Daten empfangen wurden? und wie man den Netzwerkdienst aktiviert / deaktiviert?

Hinweis: Nur Terminalbefehle Oder wenn Sie ein Skript schreiben können, bin ich Ihnen sehr dankbar.

Rahul Virpara
quelle

Antworten:

7

Öffnen Sie das Terminalfenster und geben Sie Folgendes ein:

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

Dann kopieren Sie diese und fügen Sie sie ein (ändern Sie sie für Ihre Bedürfnisse):

Hinweis: Ersetzen Sie die <Your Mobile Broadband Connection Name Here>durch den Namen Ihrer Verbindung.

#!/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

Ändern Sie die Berechtigungen dieser Datei für die Ausführung:

sudo chmod +x /etc/init.d/mobile-broadband-connect

Führen Sie Folgendes aus, um dieses Skript mit einem Dienst auszuführen:

sudo update-rc.d mobile-broadband-connect defaults

Das Skript ist als Systemstartdienst registriert, sodass Sie den Status des Skripts starten, stoppen oder überprüfen können mit:

sudo service mobile-broadband-connect start

sudo service mobile-broadband-connect stop

sudo service mobile-broadband-connect status

Starten Sie neu, um die Installation abzuschließen und eine automatische Verbindung herzustellen.

  • Starten Sie Ihr System neu, um die Installation abzuschließen.
  • Nach dem Neustart dauert es bis zu 60 Sekunden, bis das USB-Gerät aktiv ist.
  • Wenn aktiv - Die mobile Breitbandverbindung wird aktiviert und automatisch verbunden.

Erledigt ...

Octávio Filipe Gonçalves
quelle
Das Herunterfahren nach der Installation dieses Dienstes dauert ewig. Ich meine, es wird nicht heruntergefahren, wenn ich meinen Laptop herunterfahre. Es klebte am Ubuntu-Logo. Ich habe versucht sudo rm /etc/init.d/mobile-broadband-connect && sudo update-rc.d mobile-broadband-connect remove, diesen Dienst zu entfernen. Dann ging alles gut. Wie kann man das loswerden?
Rahul Virpara
Stellen Sie dies nicht als Dienstleistung. Starten Sie es manuell.
Octávio Filipe Gonçalves
Wenn ich es manuell starte, läuft es dann im Hintergrund weiter und stellt eine Verbindung her, wenn das mobile Breitband getrennt wird?
Rahul Virpara
2

Ich habe ein Shell-Skript wie folgt erstellt und es eingefügt, Startup Applicationsund es funktioniert wie ein Zauber! Ich bin damit zufrieden, aber wenn Sie es besser machen können, bin ich sehr dankbar.

#!/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
quelle
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
quelle