Bagaimana cara mengaktifkan / menonaktifkan broadband seluler dari terminal?

8

Saya menggunakan ZTE USB Modem di Natty Narwhal. Setiap hal berfungsi dengan baik tetapi kadang-kadang terputus. Saya ingin menulis skrip Shell yang menghubungkan kembali broadband seluler jika terputus atau data yang diterima kurang dari 20 KB setelah 5 detik koneksi.

Jadi pertanyaan saya adalah bagaimana cara mengaktifkan / menonaktifkan broadband seluler? Bagaimana cara memeriksa data yang diterima? dan bagaimana cara mengaktifkan / menonaktifkan layanan jaringan?

catatan: perintah terminal saja Atau jika Anda dapat menulis skrip, saya akan sangat berterima kasih.

Rahul Virpara
sumber

Jawaban:

8

Buka jendela terminal dan ketik:

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

Kemudian salin dan tempel ini (Ubah untuk kebutuhan Anda):

Catatan: Ganti <Your Mobile Broadband Connection Name Here>dengan nama koneksi Anda.

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

Ubah izin file ini untuk dieksekusi:

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

Untuk menjalankan skrip ini memiliki layanan, lakukan:

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

Skrip terdaftar sebagai layanan startup sistem sehingga Anda dapat memulai, menghentikan, atau memeriksa status skrip dengan:

sudo service mobile-broadband-connect start

sudo service mobile-broadband-connect stop

sudo service mobile-broadband-connect status

Reboot untuk menyelesaikan instalasi dan koneksi otomatis.

  • Nyalakan ulang sistem Anda untuk menyelesaikan instalasi.
  • Setelah reboot diperlukan hingga 60 detik sebelum perangkat USB aktif.
  • Saat aktif - Koneksi Broadband Seluler akan diaktifkan dan terhubung secara otomatis.

Selesai ...

Octávio Filipe Gonçalves
sumber
butuh selamanya untuk mematikan setelah menginstal layanan ini. Maksudku, itu tidak mendapatkan shutdown ketika saya mematikan laptop saya. Itu macet di logo ubuntu. Saya mencoba sudo rm /etc/init.d/mobile-broadband-connect && sudo update-rc.d mobile-broadband-connect removedan menghapus layanan ini. Kemudian semuanya baik-baik saja. Bagaimana cara menyingkirkan ini?
Rahul Virpara
Jangan menempatkan ini sebagai layanan. Mulai secara manual.
Octávio Filipe Gonçalves
jika saya memulainya secara manual maka apakah akan tetap berjalan di latar belakang dan terhubung jika broadband seluler terputus?
Rahul Virpara
2

Saya membuat skrip shell sebagai berikut dan memasukkannya ke dalam Startup Applicationsdan berfungsi seperti mantra! Saya senang dengan ini tetapi jika Anda bisa membuatnya lebih baik saya akan sangat berterima kasih.

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