Come abilitare / disabilitare la banda larga mobile dal terminale?


8

Uso il modem ZTE USB su Natty Narwhal. Tutto funziona bene ma a volte viene disconnesso. Voglio scrivere uno script Shell che riconnette la banda larga mobile se è disconnesso o se i dati ricevuti sono inferiori a 20 KB dopo 5 secondi di connessione.

Quindi la mia domanda è come abilitare / disabilitare la banda larga mobile? Come controllare i dati ricevuti? e come abilitare / disabilitare il servizio di rete?

nota: solo comandi terminal O se riesci a scrivere script, sarò molto grato.

Risposte:


8

Apri la finestra del terminale e digita:

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

Quindi copia e incolla questo (Cambia per le tue esigenze):

Nota: sostituire il <Your Mobile Broadband Connection Name Here>con il nome della connessione.

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

Modifica le autorizzazioni di questo file per l'esecuzione:

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

Per eseguire questo script ha un servizio, eseguire:

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

Lo script è registrato come servizio di avvio del sistema in modo da poter avviare, arrestare o controllare lo stato dello script con:

sudo service mobile-broadband-connect start

sudo service mobile-broadband-connect stop

sudo service mobile-broadband-connect status

Riavvia per completare l'installazione e connettersi automaticamente.

  • Riavvia il sistema per completare l'installazione.
  • Dopo il riavvio sono necessari fino a 60 secondi prima che il dispositivo USB sia attivo.
  • Se attivo: la connessione a banda larga mobile verrà attivata e connessa automaticamente.

Fatto ...


ci vuole un'eternità per arrestare dopo aver installato questo servizio. Voglio dire, non si spegne quando spengo il mio laptop. Rimase bloccato sul logo di Ubuntu. Ho provato sudo rm /etc/init.d/mobile-broadband-connect && sudo update-rc.d mobile-broadband-connect removee rimosso questo servizio. Quindi tutto è andato bene. Come sbarazzarsi di questo?
Rahul Virpara,

Non metterlo come servizio. Avviarlo manualmente.
Octávio Filipe Gonçalves,

se lo avvio manualmente, continuerà a funzionare in background e connettersi se la banda larga mobile è disconnessa?
Rahul Virpara,

2

Ho creato uno script di shell come segue e l'ho inserito Startup Applicationse funziona come un incantesimo! Sono contento di questo, ma se riesci a migliorarlo sarò molto grato.

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

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.