URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 47075
[ Назад ]

Исходное сообщение
"expect не работает через cron"

Отправлено razor , 11-Авг-04 12:09 
Проблема.
Написал скрипт на bash в котором запускается скрипт написанный на expect. Запускаю - работает.
Пишу в crontab - не работает. Остальные скрипты работают через cron исправно, а с expect не хочет 8-(
Почему так?

Суть скрипта примерно такая
#!/bin/bash
echo 'содержимое скрипта написанном с помощью expect' > /home/user/script1
chmod 0755 /home/user/script1
/home/user/script1


Содержание

Сообщения в этом обсуждении
"expect не работает через cron"
Отправлено razor , 11-Авг-04 13:50 
Ну что, кот нибудь подскажет почему expect по cron-у не выполняется ?

"expect не работает через cron"
Отправлено Z0termaNN , 11-Авг-04 14:05 
>Ну что, кот нибудь подскажет почему expect по cron-у не выполняется ?
>


PATH ?
#!/path/to/expect ?


"expect не работает через cron"
Отправлено razor , 11-Авг-04 14:47 
>PATH ?
>#!/path/to/expect ?

Путь стоит
#!/usr/bin/expect

#!/usr/bin/expect -f
spawn /usr/bin/rsh cisco.router clear line tty ${Line}
expect "*confirm]"
send "\r"
interact

Потом root-у приходит письмо, что то типа
/usr/bin/rsh cisco.router clear line tty 34
[confirm]

и все. Вроде как не может нажать энтер для подтверждения(send "\r"), хотя если запустить вручную, то все работает.
Не может нажать enter,


"expect не работает через cron"
Отправлено Gleb , 11-Авг-04 14:51 
ИМХО, в expect-скрипте нужно указать полный путь к коммандам
вроде:
"/usr/local/bin/wget" вместо "wget"

"expect не работает через cron"
Отправлено razor , 11-Авг-04 15:11 
>ИМХО, в expect-скрипте нужно указать полный путь к коммандам
>вроде:
>"/usr/local/bin/wget" вместо "wget"

Дык он выполняет первую строчку. (смотрите пред идущий ответ)

Сделал по другому. Прописал в крон скрипт
#!/bin/bash
/home/user/script1

(/home/user/script1- скрипт expect)

Результат тот-же 8-(


"expect не работает через cron"
Отправлено Gleb , 11-Авг-04 15:55 
>
>Дык он выполняет первую строчку. (смотрите пред идущий ответ)
>
>Сделал по другому. Прописал в крон скрипт
>#!/bin/bash
>/home/user/script1
>
>(/home/user/script1- скрипт expect)
>
>Результат тот-же 8-(


А что пишет /var/log/cron ?


"expect не работает через cron"
Отправлено razor , 12-Авг-04 08:19 
>А что пишет /var/log/cron ?

Да ничего криминального нет.

Aug 12 10:06:00 host CROND[22126]: (root) CMD (run-parts /etc/cron.min)
Aug 12 10:07:00 host CROND[22134]: (root) CMD (run-parts /etc/cron.min)
Aug 12 10:08:00 host CROND[22141]: (root) CMD (run-parts /etc/cron.min)

Как бы скрипт выполняется, но там где нужно нажать enter(send "\r")для подтверждения [confirm], ничего не происходит. А если вручную запускать то все работает.


"expect не работает через cron"
Отправлено Вася , 12-Авг-04 08:29 
закинул бы посмотреть целиком строчку PATH из твоего /etc/crontab

"expect не работает через cron"
Отправлено razor , 17-Авг-04 10:47 
>закинул бы посмотреть целиком строчку PATH из твоего /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

expect находиться в /usr/bin


"expect не работает через cron"
Отправлено razor , 18-Авг-04 11:05 
Кто нибудь работал с expect через cron?
Почему не выполняется?