LINUX.ORG.RU

Bash expect

 


0

1

Подскажите как в expect проверить успешно ли произошло соединение по ssh или нет

если да то выводить echo «Успешно» или echo «не успешно»


Ответ на: комментарий от vbox

Вам expect чтоб пароль вводить? Можно без expect, взять sshpass:

#!/bin/bash (sh)

sshpass -p $passwod ssh me@localhost $(ls)
if [ $? -eq 0 ]; then
   echo "ok"
else
   echo "не ok"
fi

Deleted
()
Ответ на: комментарий от vbox

Пока не знаю, честно. Если, например, пароль неправильный, что-то в консоль пишется?

Deleted
()

Чего только не делают люди лишь бы не ходить на сервер по ключам.

entefeed ☆☆☆
()

if [ catch { spawn /usr/bin/ssh $user@$ip} pid ] {

puts «Could not start ssh - $pid\n»

exit 1

}

set id_session $spawn_id

set timeout 60

expect -i $id_session «assword» { send «$userpass\r»

} timeout {

puts «Timeout expired»

exit 1

} eof {

puts «Connection lost»

exit 1

}

expect -i $id_session «$userprompt» { puts «OK»

exit 0

} timeout {

puts «Timeout expired»

exit 1

} eof {

puts «Connection lost»

exit 1

}

если использовать expect_before то будет красивше

anonymous
()
Ответ на: комментарий от anonymous

любишь форматирование - пиши на питоне

я о форумном bb ;)

tazhate ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.