我能够将变量从 HTML 表单传递到简单的 Perl 脚本。这是 perl 脚本的主线。
system("/var/www/cgi-bin/aaa $name")
perl 脚本调用名为 aaa 的 bash 脚本。 正如你所看到的,我将 $name (我的 html 表单中的条目)传递给了 aaa bash 脚本。 在我的 bash 脚本中,我可以将 $name 回显为 $1 或将 $1 分配给 $name。 到目前为止一切顺利。这就是我想要的方式。但是在我的 aaa bash 脚本中 我的 aaa 脚本中有一个 ssh 命令不起作用。不管有多少种不同的方式 我尝试了一下,只是不起作用。如果我从命令行运行 aaa 脚本命令并传递一个参数,该脚本可以正常工作,但是当我通过 perl 尝试它时,它会失败。
我现在的 ssh 命令非常简单。所以我的 aaa bash 文件包含一个简单的行
echo $1
ssh $1 "ls -altr" > /var/www/cgi-bin/output
如果我从命令行( aaa serverx )调用此脚本,它可以正常工作。 现在我通过 html 表单执行此操作,唯一有效的是 echo $1 命令。 换句话说,我可以看到我传递了正确的服务器名称(例如 serverx),当我 echo $1 时,我可以看到 serverx。但是,ssh 线路失败。不确定要做什么?有人可以帮忙吗?
问候
最佳答案
理想情况下,您应该在 Perl 脚本中执行操作,不需要 aaa 脚本,ssh 无法工作的原因可能有很多,可能只是因为您在更高级别关闭了 STDIN 、 STDOUT 或启用了重定向?这可能简单地解释了为什么它可以从命令行工作,但不能从另一个包装器工作。您是否尝试过在 perl 脚本内运行 ssh 并查看是否有效?是否可以分享部分代码片段?
关于HTML 调用 Perl Perl 调用脚本 脚本 SSH 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27881630/