如何在标准 perl 5.10.0 中进行远程执行

发布于 2024-10-29 14:46:49 字数 379 浏览 1 评论 0原文

我想通过远程程序运行一些命令。我已经使用以下代码尝试过。

my $promt = '/bash\$ $/';    
use Net::Telnet ();

$conn = new Net::Telnet (Timeout => 10, Prompt => $promt);
$conn->open($host);
$conn->login($username, $passwd);
@lines = $conn->cmd("who");
print @lines;

但它给出了错误, 无法在 @INC 中找到 Net/Telnet.pm.....

有没有办法在不更改、添加标准 perl 5.10.0 模块的情况下完成此任务?

I want to run some commands via a remote program. I've tried it using following code.

my $promt = '/bash\$ $/';    
use Net::Telnet ();

$conn = new Net::Telnet (Timeout => 10, Prompt => $promt);
$conn->open($host);
$conn->login($username, $passwd);
@lines = $conn->cmd("who");
print @lines;

But it gives error,
Can't locate Net/Telnet.pm in @INC.....

Is there way to do this task without changing, adding standard perl 5.10.0 modules?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那请放手 2024-11-05 14:46:49

只需在您自己的用户路径中安装 Net::Telnet perl 模块即可。或者,如果您没有绑定 perl,我建议在远程系统上运行命令的最佳方式是 SSH。

$ssh user@ip 'command'

这将为您提供 STDOUT 中的结果。

示例:

root@www:~ # ssh root@www 'who'
brock pts/0 Oct 21 10:31 (75.72.194.149)
jim pts/1 Oct 25 06:25 (128.101.163.128)

您可以在“使用 SSH 运行远程命令”找到更多示例。

Just install the Net::Telnet perl module in your own user path. OR if you are not bound to perl, the best way i can suggest to run commands on remote systems is SSH.

$ssh user@ip 'command'

This will give you the results in STDOUT.

Examples:

root@www:~ # ssh root@www 'who'
brock pts/0 Oct 21 10:31 (75.72.194.149)
jim pts/1 Oct 25 06:25 (128.101.163.128)

You can find few more at "Run Remote Command with SSH".

你丑哭了我 2024-11-05 14:46:49

我已经使用此函数解决了问题...

# Get the needed values from the database
sub Execute_Remote_Command($) {
    print "sshpass -p $password ssh $user\@$host '$_[0]'\n";
    print `sshpass -p $password ssh $user\@$host '$_[0]'`;
    print `exit`;
}

函数 -Execute_Remote_Command- 需要一个需要在远程计算机中运行的参数。

这里唯一需要的额外要求是支持 sshpass 命令,可以使用以下网址下载。
http://linux.softpedia.com/get/Security/Sshpass-8693.shtml

Ive solved the problem using this function...

# Get the needed values from the database
sub Execute_Remote_Command($) {
    print "sshpass -p $password ssh $user\@$host '$_[0]'\n";
    print `sshpass -p $password ssh $user\@$host '$_[0]'`;
    print `exit`;
}

Function -Execute_Remote_Command- needed a parameter which needed to be run in the remote machine.

The only additional requirement needed here is supporting sshpass command and it can be downloaded using following url.
http://linux.softpedia.com/get/Security/Sshpass-8693.shtml

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文