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

Исходное сообщение
"SSH: DOS-like переносы и количество попыток соединения"

Отправлено localhorst , 14-Июн-10 21:03 
Приветствую.
В процессе жизни столкнулся с двумя довольно неприятными особенностями при работе с ssh через bash-скрипты, собственно, вопросы:
1) Мне нужно, чтобы все сообщения об ошибках уходили в переменную. 2>&1 проблему решил, но оказалось, что в сообщениях об ошибках (типа таймаута) могут присутствовать переносы в стиле DOS. Можно, конечно, их просто отрезать sed '/.$//', но как понять, нужно ли резать, чтобы не убить лишнего?
2) Еще одна неприятность: скрипт делает ssh -e на несколько серверов, некоторые из них могут быть недоступны. Неприятность в том, что при получении таймаута ssh пытается соединиться вновь и так несколько раз. Можно ли как-то ограничить количество таких повторов единицей? Чтобы при таймауте ssh просто выводил сообщение о нем и более ничего не делал?

Сама строка выглядит банально: var=`ssh hostname 'command' 2>&1`

Пробовал разобраться в англоязычном man ssh - не вышло, прошу совета здесь.


Содержание

Сообщения в этом обсуждении
"SSH: DOS-like переносы и количество попыток соединения"
Отправлено jd , 15-Июн-10 04:50 
1. man fromdos. Хотя "переносы в стиле DOS" у ssh - это нонсенс. Разве только какие-то команды на той стороне такое выдают или вы всё это делаете под виндой...
2. Ничего такого ssh делать не должен. В мане ни про какие повторы ничего не нашёл. Я бы скорее предположил, что вы в скрипте что-то лишний раз вызываете. Указанная вами строка вероятно выполняется в каком-нибудь цикле, возможно в какой-нибудь функции, ну и так далее.

"SSH: DOS-like переносы и количество попыток соединения"
Отправлено localhorst , 15-Июн-10 10:06 
>1. man fromdos. Хотя "переносы в стиле DOS" у ssh - это
>нонсенс. Разве только какие-то команды на той стороне такое выдают или
>вы всё это делаете под виндой...
>2. Ничего такого ssh делать не должен. В мане ни про какие
>повторы ничего не нашёл. Я бы скорее предположил, что вы в
>скрипте что-то лишний раз вызываете. Указанная вами строка вероятно выполняется в
>каком-нибудь цикле, возможно в какой-нибудь функции, ну и так далее.

1. С обоих сторон фря 6.4, по крайней мере в логе про таймаут в mcedit вижу:
ssh: connect to host XXXX port 22: Operation timed out^M

2. тут нашел: http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch07_04.htm
7.4.5.1. Number of connection attempts
If you run an SSH1 or OpenSSH client and it can't establish a secure connection, it will retry. By default, it tries four times in rapid succession. You can change this behavior with the keyword ConnectionAttempts:

    # SSH1, OpenSSH
    ConnectionAttempts 10

Поставил пока 1, посмотрим, что будет.