Добрый день.
Написал скрипт для автоматического переключения маршрутов, однако столкнулся со странной ошибкой
При запуске скрипта через crontab в полученном по email отчёте вижу следующее
/etc/chroute/chroute.sh: line 40: route: command not found
Вот соответствующий фрагмент кода
## Функция проверки качества линии связи
testroute()
{
route add -host $testserver gw $gateway metric 1 <--------------- строка 40. ошибка
ping $testserver -c $countping 2>&1 | tee $testpingfile
route del -host $testserver <--------------- строка 42. ошибка
testpinglost=$(grep "packets transmitted" $testpingfile | sed 's/[^0-9 ]//g;q' | awk '{print $3;}')
testpingtime=$(grep "rtt min/avg/max/mdev" $testpingfile | sed 's%\/%\ %g' | sed 's/[^0-9 ]//g;q' | awk '{print $2;}' )
if [[ $testpinglost -gt $maxpinglost ]]
then
echo "Обнаружено $testpinglost потерянных пакетов. Связь по данному каналу неустойчива."
echo $(date +%F\ %T)": Потерянных пакетов - $testpinglost" >> $logfile
elif [[ $testpingtime -gt $maxpingtime ]]
then
echo "Время прохождения пакетов по данному каналу $testpingtime превышает разрешённое $maxpingtime ."
echo $(date +%F\ %T)": Время прохождения пакетов по данному каналу - $testpingtime" >> $logfile
else
goodlink=true
echo "Канал связи работает"
fi
}
Аналогичные ошибки происходят далее по тексту - то есть ни один вызов команды route не выполняется. Мол, "нет такой команды"
Однако ошибка эта возникает, только если скрипт вызывается через crontab от имени root. Если запускать скрипт вручную, то команда route выполняется правильно (при запуске через sudo) или выдаёт ошибку о недостаточности прав доступа (при запуске без sudo)
В чём может быть проблема?