麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

cpan安裝Net::SSH::Perl中遇到的一些問題

2020-10-31 15:18:43
字體:
供稿:網(wǎng)友

使用cpan安裝Net::SSH::Perl:
cpan>install Net::SSH::Perl

期間遇到了一些問題,記錄在此,以備后閱。

因為cpan對其它軟件的依賴性,要求軟件版本的不能過低,所以先升級一下這兩個模塊:

復(fù)制代碼 代碼如下:

cpan>upgrade Module::Build
cpan>upgrade ExtUtils::Install

Math::BigInt報錯:
Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::Calc at /usr/lib/perl5/site_perl/5.8.8/Crypt/DH.pm line 6

按照報錯信息,把DH.PM這個文件的第六行做更改:
原為:use Math::BigInt lib => “GMP,Pari”;
更為:use Math::BigInt try => “GMP,Pari”;

在安裝過程中,裝到Math::GMP模塊時,報錯而停止。 大概意思是缺少GMP.c文件,故現(xiàn)在系統(tǒng)下安裝一個GMP庫文件,和一個GMP庫的開發(fā)包。

復(fù)制代碼 代碼如下:

aptitude install libmath-gmp-perl
aptitude search libgmp3-dev

如前面安裝Math:GMP失敗過,先把如下文件夾刪掉后,再安裝吧。
rm -fr /root/.cpan/build/Math-GMP-2.06-*

基本語法
1. 一般語法

復(fù)制代碼 代碼如下:

my $host = "192.168.14.222";
        my $user = "root";
        my $passwd = "123456";
        my %params = (
        protocal => '2,1',
        debug => '1',
        );
        use Net::SSH::Perl;
        my $ssh = Net::SSH::Perl->new($host[,%params]);
        $ssh->login($user, $pass);
        my($out, $err, $exit) = $ssh->cmd($cmd);
        print "$out/n";

2. 根據(jù)提示信息,返回字符, 可實現(xiàn)交互式操作。

復(fù)制代碼 代碼如下:

$ssh->register_handler("stdout",sub{
            my($channel,$buffer) = @_;
            my $str = $buffer->bytes;
            if($str =~ /(.*)/[Y//n///?/]/i){
                  $channel->send_data("y/n")
               }}
        );

3. Term::ReadKey模塊   得到一個互動的偽終端

復(fù)制代碼 代碼如下:

use Term::ReadKey;
ReadMode('raw');
$ssh->shell;
ReadMode('restore');


解決連接遠(yuǎn)程主機(jī)慢的問題

網(wǎng)上說要安裝三個東西:
YAML
Math::BigInt
Math::BigInt::GMP

之前已經(jīng)安裝完 YAML 和  Math::BigInt 了,在裝完 Math::BigInt::GMP 后測試,在與遠(yuǎn)程主機(jī)的連接過程中,速度明顯提升(連接到遠(yuǎn)程主機(jī)后操作時間不變)。

實例

實例1: 登錄一臺遠(yuǎn)程主機(jī),完成簡單操作。

復(fù)制代碼 代碼如下:

use strict;
        use warnings;
        use Net::SSH::Perl;
        my $host = "192.168.14.222";
        my $user = "root";
        my $passwd = "123456";
        my %params = (
        protocal => '2,1',
        debug => '1',
        );
        my $ssh = Net::SSH::Perl->new($host,%params);
        $ssh->login($user,$passwd);
        my ($out,$err,$exit) = $ssh->cmd("ifconfig");
        print "$out/n";
        $ssh->cmd("mkdir /home/user;touch /home/user/{1..10}.log");

實例2:通過一個遠(yuǎn)程主機(jī)列表,登錄N臺遠(yuǎn)程主機(jī),完成可提問式的互動操作。
遠(yuǎn)程主機(jī)列表文件Remoto_host_list.txt文件:
192.168.14.222 root 123456
192.168.14.223 root 123456

程序:

復(fù)制代碼 代碼如下:

use strict;
        use warnings;
        use Net::SSH::Perl;
        open HOST_LIST, "Remote_host_list.txt" or die "can`t open this file/n";
        sub MySSH{
        my ($host,$user,$passwd) = split;
        my %params = (
        protocal => '2,1',
        # debug => '1',
        );
        my $ssh = Net::SSH::Perl->new($host,%params);
        $ssh->login($user,$passwd);
        $ssh->register_handler("stdout",sub{
            my($channel,$buffer) = @_;
            my $str = $buffer->bytes;
            if($str =~ /(.*)/[Y//n///?/]/i){
                  $channel->send_data("y/n")
              }}
        );
        $ssh->cmd("aptitude install ppp");
        print "/n** $host complete.../n/n";
        };
        while(<HOST_LIST>){
        MySSH
        }

說明:
根據(jù)給出的遠(yuǎn)程主機(jī)列表文件,來逐一完成安裝PPP的操作,在實際的安裝過程中,會出現(xiàn)詢問,是否安裝一些依賴包,如安裝按y,否則按n

情景如下:
Do you want to continue? [Y/n/?]
用"register_handler",可實現(xiàn)交互式的自動安裝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲欧美aⅴ| 中文字幕一区二区三区久久 | 久久久久亚洲精品 | 黄色特级 | 久久成人免费观看 | 日本中文一级片 | 久久99国产精品久久99 | 激情网站视频 | 91精品国产777在线观看 | 欧美日韩爱爱视频 | 日韩电影一区二区三区 | 最近中文字幕一区二区 | 亚洲人成网站在e线播放 | 精品亚洲午夜久久久久91 | 国产亚洲精品久久 | 最新欧美精品一区二区三区 | 久久中文免费 | 91精品国产91久久久久久吃药 | 日韩精品中文字幕一区二区三区 | 一区二区久久久久草草 | 亚洲天堂成人在线观看 | 成人免费激情视频 | 色人阁五月天 | 中午字幕无线码一区2020 | 亚洲特黄妇女高潮 | 香蕉久草视频 | 日韩av电影免费在线观看 | 亚洲日本韩国精品 | 久久羞羞| 日本a级免费 | 国产成人高清在线 | 久久久久久久久久久影视 | 日韩视| 国产乱淫a∨片免费观看 | 精品国产一区二区亚洲人成毛片 | 亚洲尻逼视频 | 中文字幕一区在线观看视频 | 哪里可以看免费的av | 精品久久久久久久久久久久久久久久久久久 | 视频在线色 | 精品久久久一 |