Есть UbuntuServer 11.4 с подключенным 3g модемом. Есть подключение к VPN. Периодически они отключаются из-за низкого качества сигнала и я решил написать простой скрипт который проверял бы наличие подключений и если что запускал бы отвалившееся.
Примерный текст скрипта: (пишу по памяти из дома, сервер остался на работе)
Код:
num_ppp0=$(ifconfig | grep -c ppp0)
if [ $num_ppp0 == 0 ]
then
echo "Подключения к MTS нет"
pon mts
else
echo "Подключения к MTS есть"
num_ppp1=$(ifconfig | grep -c ppp1)
if [ $num_ppp1 == 0 ]
then
echo "Подключения к VPN нет"
pon vpn
else
echo "Подключения к VPN есть"
fi
fi
exit 0
Скрипт отлично отрабатывает при запуске руками. Восстанавливает подключения и т.д.
Но стоит его включить в задание в кроне (по-моему задание выглядит так: */1 * * * * /scripts/up_con.sh.) как единственное что он пишет:
Подключения к MTS нет.
И всё. Хотя само подключение может быть и команда $(ifconfig | grep -c ppp0) возвращает 1.
Пишу на bash не первый раз но такие интересные факты замечены впервые. Кто нибудь может прокомментировать данный случай?
Впишите полный путь к ifconfig. В cron переменные окружения инициализируются довольно специфичными значениями. В частности, PATH в зависимости от реализации может быть чем-то вроде "/bin:/usr/bin" (а ifconfig находится в /sbin), или даже чем-то ещё короче.
Впишите полный путь к ifconfig. В cron переменные окружения инициализируются довольно специфичными значениями. В частности, PATH в зависимости от реализации может быть чем-то вроде "/bin:/usr/bin" (а ifconfig находится в /sbin), или даже чем-то ещё короче.
Спасибо. Сонная голова вспоминает про что-то подобное.... где то я это слышал. Завтра попробую проверить.