Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Net::SSH::Expect и mtr


Автор: MZ412 15.9.2010, 20:55
Пытаюсь удалённо выполнить команду mtr и получить данные.

Код

#!/usr/local/bin/perl -w

use warnings;
use strict;

use Net::SSH::Expect;

my $host = "x.x.x.x";

my $ssh = Net::SSH::Expect->new (
        host => "host",
        password=> 'pass',
        user => 'user',
        raw_pty => 1
);

$ssh->run_ssh() or die "SSH process couldn't start: $!";

my $login_output = $ssh->login();

$ssh->send("/usr/local/sbin/mtr -r -c 10 $host");

my $line;
        while ( defined ($line = $ssh->read_line()) ) {
         print $line . "\n";  
}

$ssh->close();


Результат - /usr/local/sbin/mtr -r -c 10 x.x.x.x
А должна быть трассировка.
Права на выполнение есть. Проверил.
С find / или какой ещё командой, выдающей в STDOUT поток - всё ок.

Может кто сталкивался?

upd
Пробовал все методы, кроме как с авторизацией ибо напрасно...

Автор: MZ412 16.9.2010, 13:25
Проблема была в строке запуска /usr/local/sbin/mtr -r -c 10
Надо было -c 1 выставлять. При 10 сек. таймаута почему то результат улетал в трубу.
Ну хорошо что не в коде дело.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)