LINUX.ORG.RU

perl ssh any src port


0

0

Доброе время суток.
У меня вот такая проблемка. Я хочу выполнить нескольео команд на нескольки роутерых, для этого перебираю их по списку. Вот что у меня 
получается когда сеанс с первым благополучно завершается...

Net::SSH: Can't bind socket to port 1023: Адрес уже используется at ./ro.pl line 194
вот такая 194 строка, собственно $host это есть один из списка ИП-адрес роутера.
my $ssh = Net::SSH::Perl->new($host);
Как открывать новую сессию с нового сорусного порта или может у меня еще первая не завершается?

на сервере вот что в логе...
Jul 24 09:29:15 debian useradd[20678]: new user: name=proba, UID=509, GID=0, home=/home/proba, shell=/bin/sh
Jul 24 09:29:27 debian passwd[20679]: (pam_unix) password changed for proba
Jul 24 09:29:27 debian passwd[20679]: (pam_unix) Password for proba was changed
Jul 24 09:30:09 debian sshd[20680]: Accepted password for proba from 192.168.10.12 port 1023 ssh2
Jul 24 09:30:09 debian sshd[20688]: (pam_unix) session opened for user proba by (uid=0)
Jul 24 09:30:09 debian sshd[20688]: (pam_unix) session closed for user proba
anonymous

а у меня такая же хрень была когда я курсач писал, когда сокет не закрываешь, причем если подождать полминуты - все проходит

а вот одногруппники-вендузятники рассказывали что им приходилось перегружать тачку

z0D5e8n7x
()

Больше велосипедов, хороших и разных?

# apt-cache show clusterssh dish
Package: clusterssh
...
Description: administer multiple ssh or rsh shells simultaneously
 ClusterSSH allows you to control multiple ssh or rsh sessions from a
 single input window.  You can also configure clusters of machines for
 easy invocation and interact with individual terminal windows during a
 session.
Homepage: http://clusterssh.sourceforge.net/

Package: dish
...
Description: the diligence/distributed shell for parallel sysadmin
 Dish executes commands simultaneously on several systems via ssh, rsh,
 telnet, mysql, or other command-line programs. It also makes easy the
 distribution of files by scp/rcp, or a remote password change. Dish
 could be used as a flexible tool for managing large number of any
 type of hosts such as (clustered) servers, switches, databases, etc.
Homepage: http://dish.mirendom.net

anonymous
()

По умолчанию нельзя сразу после закрытия сокета биндить другой с такими же параметрами (ip-адрес и порт), об это написано в man 7 ip. Для отключения этого поведения используется SO_REUSEADDR...

В модуле Net-SSH-Perl была ошибка при биндинге привилегированного адреса (порт 1023 и ниже) http://coding.derkeiler.com/Archive/Perl/perl.beginners/2005-04/msg00217.html и похоже она осталась...

Попробуйте отключить параметр 'privileged'=0, автоматически включаемый для root'а или поправьте в модуле обработку ошибок:

if ($! =~ /(Address|The socket name is) already in use/i)

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

>> По умолчанию нельзя сразу после закрытия сокета биндить другой с такими же параметрами (ip-адрес и порт), об это написано в man 7 ip. Для отключения этого поведения используется SO_REUSEADDR...

спасибо тебе умный человек, так бы и жил не образованным

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