Показать сообщение отдельно
Старый 09.06.2013, 16:04   #1
simplyred
 
Регистрация: 20.08.2012
Сообщений: 5
Репутация: 0
По умолчанию ssh соединение виснет на статусе syn_sent

Всем доброго дня! Столкнулся с проблемой:

Ести хост А и хост Б. С хоста Б на хост А надо сливать файл раз в Н-ое количество часов. написал на баше скрипт (с помощью expect), который сначала заходит по ссш на хост Б и формирует там архив из нужного файла (в файл постоянно идет запись, скачать его сразу не выдается возможным из за этого), потом через scp скачивает архив. Получается так, что на первая часть выполняется, на ссш скрипт заходит, а сцп-коннект уже не канает. Стал искать причину, выяснилось, что вообще если 2 раза подряд попробовать установить соединение с хостом Б, то на втором коннекте подвисает, нетстат показывает статус SYN_SENT у подвисшего конекта, отвисает и дает соединиться только через 4-5 минут. Вот дебаг лог подвисающего соединения

Цитата:
[root@lcvmmp82 deman]# ssh -vvv 174.34.85.152
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 174.34.85.152 [174.34.85.152] port 22.
и дальше стопэ. Тот же самый эффект на других хостах-клиентах. Если один раз авторизоваться на хосте Б, а потом выйти из сессии, то потом даже до авторизации не доходит.

Вот кусок expect-скрипта, который и подвисает на втором конекте. (а потом уже и на первом, при повторном запуске)

Цитата:
spawn ssh root@$bcp_server
expect "root@$bcp_server's password:" {send "$pass\r"}
expect "root@" {send "cd /var/www && tar czvf log.tar.gz log\r";}
send "exit\r"



spawn scp root@$bcp_server:/var/www/log.tar.gz $FNAME.tar.gz
expect "root@$bcp_server's password:" {send "$pass\r"}
expect eof

Последний раз редактировалось simplyred; 10.06.2013 в 14:19..
simplyred вне форума   Ответить с цитированием