端末からモバイルブロードバンドを有効/無効にする方法は?


8

Natty NarwhalでZTE USBモデムを使用しています。すべて正常に動作しますが、切断される場合があります。モバイルブロードバンドが切断された場合、または接続の5秒後に受信データが20 KB未満の場合に、モバイルブロードバンドを再接続するシェルスクリプトを記述したいと思います。

だから私の質問はモバイルブロードバンドを有効/無効にする方法ですか?受信したデータを確認する方法は?そして、ネットワークサービスを有効/無効にする方法は?

注:端末コマンドのみ またはスクリプトを記述できる場合は、私に感謝します。

回答:


8

ターミナルウィンドウを開き、次のように入力します。

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

次に、これをコピーして貼り付けます(必要に応じて変更してください)。

注:を<Your Mobile Broadband Connection Name Here>接続の名前に置き換えます。

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

このファイルの権限を実行用に変更します。

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

このスクリプトを実行するには、サービスがあります。

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

スクリプトはシステム起動サービスとして登録されているので、次のコマンドを使用してスクリプトの開始、停止、またはステータスを確認できます。

sudo service mobile-broadband-connect start

sudo service mobile-broadband-connect stop

sudo service mobile-broadband-connect status

再起動してインストールを完了し、自動接続します。

  • システムを再起動して、インストールを完了します。
  • 再起動後、USBデバイスがアクティブになるまで最大60秒かかります。
  • アクティブな場合-モバイルブロードバンド接続がアクティブになり、自動接続されます。

完了しました...


このサービスをインストールした後、シャットダウンするのに永遠にかかります。つまり、ラップトップをシャットダウンしてもシャットダウンしません。ubuntuのロゴにこだわりました。sudo rm /etc/init.d/mobile-broadband-connect && sudo update-rc.d mobile-broadband-connect removeこのサービスを試して削除しました。その後、すべてがうまくいきました。これを取り除く方法は?
Rahul Virpara、2012年

これをサービスとして使用しないでください。手動で起動します。
–OctávioFilipeGonçalves2012

手動で起動すると、バックグラウンドで実行され続け、モバイルブロードバンドが切断された場合に接続しますか?
Rahul Virpara 2012年

2

次のようにシェルスクリプトを作成しStartup Applications、それを挿入すると、魅力的に動作します。私はこれに満足していますが、あなたがそれをより良くすることができれば、私は非常に感謝します。

#!/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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.