Jak naprawić utratę połączenia na maszynie wirtualnej?

0

Moja maszyna wirtualna czasami traci połączenie z Internetem na Linuksie i muszę być stale połączona. Więc napisałem następujący skrypt:

#!/bin/bash 
wget -q --tries=10 --timeout=20 --spider http://google.com 
if [[ $? -ne 0 ]]; then 
    service network-manager restart
fi

Po uruchomieniu tego skryptu w konsoli działa, ale używając cron:

network-manager: unrecognized service

Co mogę zrobić, aby to zadziałało lub jakie inne podejście może mi pomóc?

---------------- ROZWIĄZANIE ----------------

Aby wiedzieć, dlaczego to działa uruchomione w konsoli, ale nie podczas zadania, które uruchomiłem cronw konsoli:

echo $PATH

Następnie wyświetliło się:

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Więc edytuję mój skrypt do:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

wget -q --tries=10 --timeout=20 --spider http://google.com 
if [[ $? -ne 0 ]]; then 
    service network-manager restart
fi

I to działa teraz!

kakko76
źródło

Odpowiedzi:

0

Zakładając, że używasz podobnej dystrybucji Linux Mint ...

Wygląda na to, że program „service” nie może znaleźć skryptu „network-manager” do uruchomienia. Wygląda w / etc / init lub /etc/init.d, więc możesz tam sprawdzić, co jest dostępne.

Lub sprawdź, czy automatyczne uzupełnianie powie ci (łatwiejsze IMO). Otwórz terminal i wpisz:

service net

następnie wpisz TABkilka razy i powinna otrzymać automatycznie uzupełnianą nazwę, taką jak „znak sieci”, a nawet zobaczyć niektóre opcje, których możesz użyć, takie jak:

$ service networking 
force-reload  reload        restart       start         stop   

Możesz więc spróbować użyć (może być konieczne, sudojeśli skrypt nie jest jeszcze rootem):

service networking restart

Co więcej, możesz po prostu pingwitrynę taką jak Google co minutę, aby sprawdzić, czy sieć nadal działa, zamiast próbować ją pobrać.


Spróbuj sprawdzić, czy nie ma błędu maszyny wirtualnej lub dziwnych ustawień, zwykle nie powinna ona tracić połączenia sieciowego, chyba że komputer hosta ją utraci ...

Xen2050
źródło
Niestety TAB nie sugeruje usługi menedżera sieci, a jedynie usługę sieciową, która nie uruchamia się poprawnie połączenie internetowe rzuca VPN. Rzeczywiście menedżer sieci nie pojawia się w katalogu /etc/init.d/, ale w pliku / etc / init / znajduje się plik network-manager.conf. Polecenie service network-manager restartdziała przy użyciu konsoli, ale nie podczas zadania cron.
kakko76 24.04.16