Моя виртуальная машина иногда теряет интернет-соединение в Linux, и мне нужно постоянно оставаться на связи. Поэтому я написал следующий скрипт:

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

Когда я запускаю этот скрипт в консоли, он работает, но используя cron я получаю:

network-manager: unrecognized service

Что я могу сделать, чтобы сделать эту работу, или какой другой подход может мне помочь?

---------------- РЕШЕНИЕ ----------------

Чтобы узнать, почему это работает, запущено в консоли, но не во время задачи cron я запустил в консоли:

echo $PATH

Затем это отображается:

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

Поэтому я редактирую свой скрипт для:

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

И это работает сейчас!

1 ответ1

0

Предполагая, что вы используете какой-то дистрибутив Linux Mint, аналогичный ...

Похоже, что "сервисная" программа не может найти скрипт "network-manager" для запуска. Он выглядит в /etc /init или /etc/init.d, так что вы можете проверить там, что доступно.

Или посмотрите, скажет ли вам автозаполнение (проще IMO). Откройте терминал и введите:

service net

затем несколько раз наберите TAB и получите автоматически заполненное имя, например "networkign", и даже увидите некоторые опции, которые вы можете использовать, например:

$ service networking 
force-reload  reload        restart       start         stop   

Так что вы можете попробовать использовать (может понадобиться sudo если скрипт уже не root):

service networking restart

Кроме того, вы можете просто ping сайт, например, Google, каждую минуту или около того, чтобы увидеть, работает ли сеть, вместо того, чтобы пытаться загрузить его.


Попробуйте проверить наличие ошибки виртуальной машины или странных настроек, обычно она не должна терять свое сетевое соединение, если только главный компьютер не теряет ее ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .