如何使用perl在远程计算机上运行命令?

时间:2012-04-13 09:39:51

标签: perl

我已经下载了运行下面提到的perl脚本所需的所有模块:

use Net::SSH::Perl;

my $host = "172.16.170.116";
my $user = "HGamit";
my $password = "";

#-- set up a new connection
my $ssh = Net::SSH::Perl->new($host);
#-- authenticate
$ssh->login($user, $pass);
#-- execute the command
my($stdout, $stderr, $exit) = $ssh->cmd("perl C:/Monitor/ltp.pl C:/monitor");

但错误是:无法连接到172.16.170.116,端口22:无法建立连接,因为目标计算机主动拒绝它。在C:/Perl/site/lib/Net/SSH/Perl.pm第206行。 然后我尝试了telnet,但它无法正常工作。

use warnings;
use Net::Telnet;

$telnet = new Net::Telnet ( Timeout=>2, Errmode=>'die');
$telnet->open('172.16.170.116');
$telnet->waitfor('/HGamit\s*/');
$telnet->print('admin');
$telnet->waitfor('/\s*/');
$telnet->print('Blue');

#$telnet->cmd('ver > C:\\log.txt');
$telnet->cmd('perl C:/Monitor/ltp.pl C:/monitor');

任何人都可以提供解决此问题的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用IO :: Socket编写客户端服务器程序。您还可以实施加密和用户身份验证。此模型使您可以控制发送命令,并在完成执行后将数据返回给客户端。您可以通过修改服务器程序中的继承PATH变量来限制要在服务器上执行的命令数,以增加安全性。 如果您需要有关代码的帮助。我可以为你发布我的代码。

谢谢,

Sukhbir Dhillon

Addteq

相关问题