使用ssh在另一个脚本中运行perl脚本

时间:2013-01-14 15:46:01

标签: perl ssh

我有一个perl脚本,我需要使用ssh连接到另一台机器,并运行另一个perl脚本。我尝试使用这一行:

system("ssh $admin_server 'perl /Perl/scripts/capture_server_restarts_gse.pl $month $date'");

但是每次脚本到达该行时,我都会收到远程计算机的提示,并且脚本不会运行。

如何解决此问题,以便脚本在其他计算机上自动运行而不显示提示。

注意:我不需要密码和用户连接到我们已经解决过的远程机器。

2 个答案:

答案 0 :(得分:4)

为什么不将您的公钥复制到另一台机器上?那样你就会被预先授权。

Here are the instructions了解如何使用ssh-keygen

执行此操作

否则您必须使用密码提供ssh,这很棘手,因为ssh通常从tty获取输入,您必须使用密码配置脚本。

答案 1 :(得分:0)

SSH服务器可以配置为始终运行一些自定义shell而不是从客户端传递的命令。

尝试从命令行运行一些简单的命令,即:

  ssh server ls

不太可能的是,插入到系统参数中的perl变量可能包含一些需要更好转义的shell元字符。例如,$ admin_server中的分号。