сценарий оболочки для перезапуска сетевого менеджера & mdash; не от терминала

В Ubuntu 13.10 (Saucy Salamander)

Установите dconf-editor

Откройте его и перейдите по адресу: org> gnome> gnome-screenshot

В поле " auto-save-directory "введите нужный каталог в следующем формате: / home / user / Desktop /

ps. Не помещайте в этот формат «файл: /// ...»

2
задан 25 May 2012 в 19:16

26 ответов

Нет, это не странно, я слишком часто сталкиваюсь с проблемами подключения, когда я использую модем net net setter.

Вот как вы это делаете

gksu service network-manager restart

сохранить его в файле с расширением .sh и предоставить разрешение для исполняемого файла, щелкнув правой кнопкой мыши >> properties >> permissions

3
ответ дан 25 May 2018 в 10:58
  • 1
    @virpara Я упоминал где-нибудь, что он не будет работать без расширения? – Srinivas Gowda 25 May 2012 в 19:44
  • 2
    @virpara: Извините, но я не в сети GSM. – Rupali 25 May 2012 в 20:05
  • 3
    @Rupali, в какой сети вы находитесь? сценарий может быть изменен в соответствии с этим. – virpara 25 May 2012 в 20:07
  • 4
    @virpara: это очень мило с твоей стороны, но сценарий Шринива Годды прост и делает работу очень быстрой и легкой. – Rupali 25 May 2012 в 20:10
  • 5
    @Rupali с вышеуказанным скриптом, который вы должны выполнить, но с моим вы будете подключены автоматически, хотя я действительно не против, если вы пойдете с этим. – virpara 25 May 2012 в 20:16

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 25 July 2018 в 18:46

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 2 August 2018 в 00:55

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 4 August 2018 в 16:25

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 6 August 2018 в 01:05

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 7 August 2018 в 18:31

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 10 August 2018 в 07:12

Нет, это совсем не странно, я слишком часто испытываю проблемы с подключением, когда использую модем net-setter usb.

enter image description here [/g0]

Вот как вы делаете это

gksu service network-manager restart

сохраните его в файле с расширением .sh и предоставите разрешение исполняемого файла, щелкнув правой кнопкой мыши >> свойства >> разрешения

3
ответ дан 15 August 2018 в 19:12
  • 1
    @virpara Я упоминал где-нибудь, что он не будет работать без расширения? – Srinivas Gowda 25 May 2012 в 19:44
  • 2
    @virpara: Извините, но я не в сети GSM. – Rupali 25 May 2012 в 20:05
  • 3
    @Rupali, в какой сети вы находитесь? сценарий может быть изменен в соответствии с этим. – virpara 25 May 2012 в 20:07
  • 4
    @virpara: это очень мило с твоей стороны, но сценарий Шринива Годды прост и делает работу очень быстрой и легкой. – Rupali 25 May 2012 в 20:10
  • 5
    @Rupali с вышеуказанным скриптом, который вы должны выполнить, но с моим вы будете подключены автоматически, хотя я действительно не против, если вы пойдете с этим. – virpara 25 May 2012 в 20:16

У меня тоже была очень похожая проблема. Мой интернет настолько шепот, что когда есть колебания мощности, модем отключается и не может быть замечен, если вы не потянете модем и не включите его снова. В противном случае вы можете использовать usb_modeswitch. Таким образом, я взял вышеупомянутый скрипт и подстроил его для выполнения обеих задач.

#!/bin/bash

while true; do
#Anything less than a solid connection reboots the USB modem
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^cdma:connected$"
if [ ! $? -eq 0 ]; then

#Reset USB Modem (12d1:1001 will have to be changed to match your modem)
sudo usb_modeswitch -R -v 12d1 -p 1001
#Wait 20 Seconds before trying to bring up the Broadband connections
sleep 20
    nmcli -t nm wwan on
#Wait Another 20 Seconds then test if the connection came up on its own as it is set to auto-connect
    sleep 20
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^cdma:disconnected$"
if [ $? -eq 0 ]; then        
    nmcli -t con up id "Zantel connection"
    sleep 15
fi
    #wait approximately 15 sec to get connected

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

Спасибо!

4
ответ дан 25 May 2018 в 10:58

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующим образом. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 25 May 2018 в 10:58
  • 1
    почему это проголосовало? – virpara 25 May 2012 в 19:33
  • 2
    Я проголосовал за вас. Люди не должны допускаться к голосованию без объяснения причин / комментариев. Хороший сценарий кстати. знак равно – wojox 25 May 2012 в 19:38
  • 3
    @wojox У меня также была проблема с отключением соединения. Так что искали в google и не нашли никакого решения. Но теперь я не знаю, даже когда мое соединение отключилось и снова подключилось !!. BTW спасибо; -] – virpara 25 May 2012 в 19:46
  • 4
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33
  • 5
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33
  • 6
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33
  • 7
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33
  • 8
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33
  • 9
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33

Это лучшее решение предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep строк в соответствии с вашей ситуацией.

У вас будет весело!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
1
ответ дан 25 May 2018 в 10:58

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 25 July 2018 в 18:46

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
1
ответ дан 25 July 2018 в 18:46

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 2 August 2018 в 00:55

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
4
ответ дан 2 August 2018 в 00:55

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 4 August 2018 в 16:25

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
4
ответ дан 4 August 2018 в 16:25

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 6 August 2018 в 01:05

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
4
ответ дан 6 August 2018 в 01:05

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 7 August 2018 в 18:31

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
4
ответ дан 7 August 2018 в 18:31

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 10 August 2018 в 07:12

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
4
ответ дан 10 August 2018 в 07:12

У меня тоже была очень похожая проблема. Мой интернет настолько шепот, что когда есть колебания мощности, модем отключается и не может быть замечен, если вы не потянете модем и не включите его снова. В противном случае вы можете использовать usb_modeswitch. Таким образом, я взял вышеупомянутый скрипт и настроил его для выполнения обеих задач.

#!/bin/bash

while true; do
#Anything less than a solid connection reboots the USB modem
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^cdma:connected$"
if [ ! $? -eq 0 ]; then

#Reset USB Modem (12d1:1001 will have to be changed to match your modem)
sudo usb_modeswitch -R -v 12d1 -p 1001
#Wait 20 Seconds before trying to bring up the Broadband connections
sleep 20
    nmcli -t nm wwan on
#Wait Another 20 Seconds then test if the connection came up on its own as it is set to auto-connect
    sleep 20
LC_ALL=C nmcli -t -f TYPE,STATE dev | grep -q "^cdma:disconnected$"
if [ $? -eq 0 ]; then        
    nmcli -t con up id "Zantel connection"
    sleep 15
fi
    #wait approximately 15 sec to get connected

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

Спасибо!

4
ответ дан 12 August 2018 в 11:36

nmcli - инструмент командной строки для управления NetworkManager и получения его статуса.

У меня также была такая же проблема при использовании Mobile Broadband.

Я создал сценарий оболочки следующее. Сохраните его, дайте разрешение на выполнение и поместите это в приложения для запуска, и это работает как шарм! Он автоматически подключится, если соединение будет отключено. Это то, что я хотел.

Вам нужно изменить идентификатор сети (для меня это "Tata Docomo Internet"). Замените "Tata Docomo Internet" именем вашего имени мобильного широкополосного подключения.

#!/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
3
ответ дан 15 August 2018 в 19:12
  • 1
    почему это проголосовало? – virpara 25 May 2012 в 19:33
  • 2
    Я проголосовал за вас. Люди не должны допускаться к голосованию без объяснения причин / комментариев. Хороший сценарий кстати. знак равно – wojox 25 May 2012 в 19:38
  • 3
    @wojox У меня также была проблема с отключением соединения. Так что искали в google и не нашли никакого решения. Но теперь я не знаю, даже когда мое соединение отключилось и снова подключилось !!. BTW спасибо; -] – virpara 25 May 2012 в 19:46
  • 4
    @virpara, я очень заинтересован в вашем подходе, потому что это не требует вмешательства. Что вы подразумеваете под «какой сетью вы находитесь»? У меня есть кабельное соединение, которое я назвал DSL Connection 1. Я спросил об этой проблеме несколько месяцев назад здесь . Если бы вы были достаточно любезны, чтобы взглянуть, я был бы признателен! – user 25 May 2012 в 21:33

Это лучшее решение для предыдущей проблемы.

Я создал 2 скрипта, первый из них ...

sudo /home/{your user name}/UMM.sh

Запустив этот «In Terminal», если вы создаете значок, вы можете пробить вам пароль sudo.

UMM.sh он вызывает следующее: чтобы заставить его работать для вас, вам придется читать и изменять материал на наверху скрипта. Вам также может потребоваться изменить некоторые из sleep линий в соответствии с вашей ситуацией.

Удовольствие!

#!/bin/bash

# *****************************************************************
#Change the following values based on your connection type and name

#Running 'nmcli -t -f TYPE,STATE dev'
#cdma or gsm (edit below)
ConType="cdma"

#Running 'nmcli -t -f NAME,TYPE con'
#The name of your connection in the network manager (edit below)
ConName="Zantel connection"

#Running 'lsusb' 
#Get the Vendor and Model ID for your modem (edit below)
USB_Vendor=12d1
USB_Product=1001

#Running 'ifconfig' 
#Get the Internet Connection (edit below)
IntCon=ppp0

# ******************************************************************

Network_State=$(nmcli -t -f TYPE,STATE dev)

echo -e 
echo -e "Current Network Status: \r"
echo $Network_State

i=0
error_count=0
#default 600
Good_connect_count=600
i=$[Good_connect_count - 50]
Default_ping_host="google.com"
pingtest=0

while true; do

#First off determine nature of problem if one exists
#Test to see if our connection type even exists
MT=C nmcli -t -f TYPE,STATE dev | grep -q $ConType

if [ $? -eq 0 ]; then

    #Check to see if the WWAN is enabled
    MT=C nmcli -t -f WWAN nm | grep -q "enabled"

    if [ $? -eq 0 ]; then

        #Check to see if we have a ppp0 connection
        MT=C ifconfig | grep -q $IntCon

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else

            dt=$(date)
            echo At $dt we have no $IntCon connection...
            echo Attempting to start $ConName
            nmcli -t con up id "$ConName"
            sleep 5
            MT=C ifconfig | grep -q $IntCon

            if [ $? -eq 0 ]; then
                #error_count=0
                i=$Good_connect_count
            else
                error_count=$[$error_count+1]
                echo "$error_count Error(s) in a row"
            fi


        fi
    else

        dt=$(date)
        echo At $dt we have no WWAN...attempting to Enable
        nmcli -t nm wwan on
        sleep 5

        MT=C nmcli -t -f WWAN nm | grep -q "enabled"

        if [ $? -eq 0 ]; then
            error_count=$error_count
        else
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    fi

else
    dt=$(date)
    echo At $dt we dont have our $ConType connection
    echo Rebooting USB Device $USB_Vendor : $USB_Product
    #Reset USB Modem
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    error_count=0
    sleep 25
fi

if [ $error_count -ge 3 ]; then
    dt=$(date)
    echo We have an issue. Rebooting USB Device at $dt. 
    usb_modeswitch -Q -R -v $USB_Vendor -p $USB_Product
    sleep 25
    error_count=0
    i=0
fi

i=$[$i+1]
if [ $i -ge $Good_connect_count ]; then
    dt=$(date)
    if [ $pingtest -eq 0 ]; then

        MT=C ping -c1 $Default_ping_host | grep -q "64 bytes from"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and ping test passed!
            #error_count=0
            i=0
            pingtest=1
        else
            echo Connection is present but cant confirm ping connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi
    else
        pingtest=0


        MT=C wget --spider http://www.hp.com 2>&1 | grep -q "200"
        if [ $? -eq 0 ]; then
            echo At $dt connection is up and http test passed!
            error_count=0
            i=0
        else
            echo Connection is present but cant confirm http connectivity. Retrying...
            error_count=$[$error_count+1]
            echo "$error_count Error(s) in a row"
        fi

    fi
fi

done
1
ответ дан 15 August 2018 в 19:12

Другие вопросы по тегам:

Похожие вопросы: