【发布时间】:2015-01-12 16:38:05
【问题描述】:
请耐心等待。我对 perl 很陌生。我将 HTML 变量从 html 表单传递到 PERL/CGI 脚本。请看以下内容
#!/usr/bin/perl
use strict; use warnings;
use CGI::Carp; # send errors to the browser, not to the logfile
use CGI;
my $cgi = CGI->new(); # create new CGI object
my $name = $cgi->param('servername');
print $cgi->header('text/html');
print "Server name is /n, $servername";
#system("/var/www/cgi-bin/localbashscript $servername");
#system("ssh $servername "remotebashscript" > localfile or display back to html );
基本上从 HTML 表单中,我需要传递服务器名称。 我尝试使用系统命令将服务器名传递给运行我的 ssh 命令的“localbashscript”。但是,我无法让它工作。有人建议我在 PERL 中进行 SSH,但我不知道该怎么做。
简而言之,我必须在远程服务器 ($servername) 上调用 bash 脚本 (remotebashscript) 并将内容显示回 html 或至少将其通过管道传输到本地文件。在运行 remotebashscript 之前我需要做的第一件事是设置我的环境变量。这就是我在 bash 中的做法。我通过获取 .profile 来设置我的环境变量,然后执行 remotebashscript 并将其重定向到本地文件。
ssh $servername ". ~/.profile;remotebashscript" > localfile
我不知道如何使用 perl 实现相同的目标并寻求您的帮助。我在下面尝试过,但没有成功
system("ssh $servername ". ~/.profile; remotebashscript" ");
提前谢谢你
【问题讨论】:
-
为什么不使用Net::SSH?
-
谢谢,我会调查的
-
因为您为
$name分配了一个值,然后尝试使用来自$servername的值?