LinuxForum.Fans
Тема

Mac OS. Работа с терминалом и sh

Автор: misedmised 4 сообщений 5977 просмотров
#252191

Друзья, подскажите по такой теме. Скрипты sh, кто силен?
Есть необходимость на маке (os x lion) запускать скрипт перезагрузки dsl-модема, который периодически теряет тырнет и не восстанавливает подключение, помогает только перезагрузка.

Написал скрипт, который должен периодически проверять пинг до внешнего хоста, если все ок - прекращает работу, если пинга нет - коннектится по телнету к модему и делает reboot.
#!/bin/sh
PINGADRESS=adress.ru
if ping -c 4 $PINGADRESS | grep 'bytes from' ; then exit
else expect -c "
spawn telnet $1192.168.1.1
sleep 3
expect \"Login:\"
send \"admin\r\"
sleep 3
expect \"Password:\"
send \"123456\r\"
sleep 3
expect "%"
send \"reboot\r\"
expect "%"
send "exit"
expect eof
"
fi

Так вот в чем проблема: если я запускаю интерактивно (вручную на компе) исполняемый файл *.sh, в котором записан скрипт, открывается терминал и выводится ход работы процесса. Интерактивно все работает как и задумано: пинг есть -выходим, пинга нет - коннект по телнету - reboot -выходим.

Но, стоит повесить запуск исполняемого файла для запуска по расписанию в cron, работает не так как задумано, т.е. reboot происходит всегда, каждый запуск скрипта вызывает перезагрузку модема, независимо от того есть ли тырнет или нет.

Что делаю не так, может запятой где в скрипте не хватает))?
Заранее, спасибо за совет.

#252198

А как вы его в cron'e запускаете:

text
sh script.sh

или

text
/path/script.sh

?

#252199

Второй вариант

text
/path/script.sh
#252425

ну так как? никто не поможет?

Войдите или зарегистрируйтесь, чтобы ответить.