gpt4 book ai didi

perl - SSHProcessError ssh进程在$ ssh-> waitfor中终止

转载 作者:行者123 更新时间:2023-12-02 14:10:02 25 4
gpt4 key购买 nike

我对Perl脚本非常陌生,并尝试将perl代码写入ssh到路由器,然后在路由器上运行scp export命令(从路由器到远程目标服务器的scp导出)。

#!/usr/local/bin/perl

use Net::SSH::Expect;
use warnings;

$hostname = "Router";

my $ssh = Net::SSH::Expect->new (
host => $hostname,
password=> 'abcd',
user => 'admin',
raw_pty => 1,
timeout => 150,
);

my $login_output = $ssh->login();
if ($login_output !~ /Router/) {
die "Login has failed. Login output was $login_output";
}

$ssh->send("scp export log traffic start-time equal 2013/04/01\@00:00:00 to user\@192.168.1.1:<path> end-time equal 2013/04/01\@01:00:00",3);
$ssh->waitfor('user@192.168.1.1\'s password:\s*') or die "prompt 'password' not found";
$ssh->send("abcd");
$ssh->send("\n");
sleep 100;
my $logout = $ssh->close();

print "=" x 50;
print "\n";

我能够看到脚本正常登录到路由器(每次运行脚本时,我都会在路由器上看到一个新用户)。但是,几秒钟后,脚本以错误终止:
SSHProcessError ssh进程已终止。在cron1第22行

第22行出了什么问题:$ ssh-> waitfor('user@192.168.1.1 \'s password:\ s *')或死于“未找到提示'password'”;

最佳答案

我使用了另一种方法登录服务器。用这段代码做了一个功能,每次对我来说效果很好。看看这是否可以帮助您。

  sub connect {

my $host =shift;
my $password=shift;
my $user=shift;
my $counter=0;
my $login_output;
$ssh = Net::SSH::Expect->new (
host => "$host",
password=> "$password",
user => "$user",
raw_pty => 1
);

$login_output = $ssh->run_ssh();

LABLE_login: # Lable used for looping
$login_output=$ssh->read_all();


if( $login_output =~ /yes/){ # To check if you are logging in for the first time
$ssh->send("yes\n");
sleep(2);
$login_output=$ssh->read_all();
if( $login_output =~ /Password/){
$ssh->send("$password\n");
}
}

elsif( $login_output =~ /Password/)
{
$ssh->send("$password\n");

}
else
{
sleep(2);
$counter++;
if($counter eq 3)
{ print color('red');print "Cannot connect to host exiting now\n";print color('reset');exit();}
goto LABLE_login;
}

$login_output=$ssh->send("$password\n");
return $ssh;
}

关于perl - SSHProcessError ssh进程在$ ssh-> waitfor中终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15917666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com