Làm cách nào để bật / tắt băng thông rộng di động từ thiết bị đầu cuối?


8

Tôi sử dụng Modem USB ZTE trên Natty Narwhal. Mọi thứ hoạt động tốt nhưng đôi khi nó bị ngắt kết nối. Tôi muốn viết tập lệnh Shell kết nối lại băng thông rộng di động nếu nó bị ngắt kết nối hoặc dữ liệu nhận được dưới 20 KB sau 5 giây kết nối.

Vì vậy, câu hỏi của tôi là làm thế nào để kích hoạt / vô hiệu hóa băng thông rộng di động? Làm thế nào để kiểm tra dữ liệu nhận được? và làm thế nào để bật / tắt dịch vụ mạng?

lưu ý: chỉ các lệnh đầu cuối Hoặc nếu bạn có thể viết tập lệnh, tôi sẽ rất biết ơn.

Câu trả lời:


8

Mở cửa sổ terminal và gõ:

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

Sau đó sao chép và dán này (Thay đổi cho nhu cầu của bạn):

Lưu ý: Thay thế <Your Mobile Broadband Connection Name Here>bằng tên kết nối của bạn.

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

Thay đổi quyền của tệp này để thực thi:

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

Để chạy tập lệnh này có một dịch vụ, hãy làm:

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

Tập lệnh được đăng ký như một dịch vụ khởi động hệ thống để bạn có thể bắt đầu, dừng hoặc kiểm tra trạng thái của tập lệnh với:

sudo service mobile-broadband-connect start

sudo service mobile-broadband-connect stop

sudo service mobile-broadband-connect status

Khởi động lại để hoàn tất cài đặt và tự động kết nối.

  • Khởi động lại hệ thống của bạn để hoàn tất cài đặt.
  • Sau khi khởi động lại, phải mất tới 60 giây trước khi thiết bị USB hoạt động.
  • Khi hoạt động - Kết nối băng thông rộng di động sẽ được kích hoạt và tự động kết nối.

Làm xong ...


phải mất mãi mãi để tắt máy sau khi cài đặt dịch vụ này. Ý tôi là, nó không bị tắt khi tôi tắt máy tính xách tay. Nó bị kẹt ở logo ubfox. Tôi đã thử sudo rm /etc/init.d/mobile-broadband-connect && sudo update-rc.d mobile-broadband-connect removevà loại bỏ dịch vụ này. Sau đó mọi thứ đều ổn. Làm thế nào để thoát khỏi điều này?
Rahul Virpara

Đừng đặt điều này như một dịch vụ. Bắt đầu nó bằng tay.
Octávio Filipe Gonçalves

Nếu tôi khởi động thủ công thì nó sẽ tiếp tục chạy ở chế độ nền và kết nối nếu băng thông rộng di động bị ngắt kết nối?
Rahul Virpara

2

Tôi đã tạo một kịch bản shell như sau và đặt nó vào Startup Applicationsvà nó hoạt động như một nét duyên dáng! Tôi hài lòng với điều này nhưng nếu bạn có thể làm cho nó tốt hơn tôi sẽ rất biết ơn.

#!/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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.