创建 perl 脚本以远程连接到另一台服务器并读取文件?
Posted
技术标签:
【中文标题】创建 perl 脚本以远程连接到另一台服务器并读取文件?【英文标题】:create perl script to connect remotely to another server and read File? 【发布时间】:2020-11-19 19:04:25 【问题描述】:我是 perl 编程的新手,也是网络的新手。 我的任务是连接到远程服务器并使用 Perl 脚本从服务器读取文件。我知道如何从本地机器读取文件,但不知道如何从远程服务器读取?
Code to read file from local machine but not know how to connect to remote server and read file?
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
open(FH, 'C:\Users\saqib riaz\Desktop\saqi\properties.txt');
while(<FH>)
"$_";
close(FH);
我用的是window操作系统和padre ide最新版的草莓
【问题讨论】:
【参考方案1】:以下内容适用于 Strawberry Perl 5.30 版。它使用Net::SSH2
并在服务器上打印一个文件file.txt
:
use strict;
use warnings;
use Net::SSH2;
my $host = 'my.host.com';
my $user = 'user_name';
my $password = 'xxxxxxx';
my $ssh2 = Net::SSH2->new();
$ssh2->connect($host) or $ssh2->die_with_error;
$ssh2->check_hostkey('ask') or $ssh2->die_with_error;
$ssh2->auth_password($user, $password);
my $chan = $ssh2->channel() or $ssh2->die_with_error;
$chan->exec('cat file.txt') or $ssh2->die_with_error;
print while <$chan>;
$chan->close;
注意:Net::SSH2
预装了 Strawberry Perl,因此无需安装。
注意:我也尝试过Net::OpenSSH
,但无法正常工作。
【讨论】:
尝试使用$ssh2->debug(1)
启用调试输出。您是否获得了有关该错误的更多信息?
@saqibriaz 这意味着您使用的是非常旧的Net::SSH2
版本。升级吧!
@HåkonHægland Net::OpenSSH
在 Windows 上不起作用。
@HåkonHægland 它可以安装在 Windows 上,因为该模块的某些部分可在 Windows 上使用(与命令引用有关的部分),但由于 OpenSSH 缺少功能,主要 SSH 功能不起作用移植到 Windows。
@saqibriaz 你的机器上安装了多个 Perl 吗?以上是关于创建 perl 脚本以远程连接到另一台服务器并读取文件?的主要内容,如果未能解决你的问题,请参考以下文章
禁用“允许远程连接到此服务器”后,我仍然可以从另一台机器连接
如何使用 Perl 通过 TCP 和 UDP 连接到远程机器?