Моя виртуальная машина иногда теряет интернет-соединение в 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
И это работает сейчас!