运行 远程服务器上的 perl 脚本

Run perl script on remote server

是否可以从 Windows 在该服务器上 运行 位于远程服务器上的 perl 脚本?每次在 Windows.

上做某事时,我都想在远程服务器上完成一项工作

你必须有东西监听指令运行脚本,然后你必须发送指令。

您可以采用多种方法,包括:

  • 运行 一个 SSH 服务器,然后从 windows 机器上的 ssh 客户端连接到它
  • 运行 HTTP 服务器,运行通过 FastCGI 运行脚本,然后从 curl 或 [=26] 上的浏览​​器请求 URL =]机器
  • 编写自定义协议,侦听套接字,然后编写您 运行 在 Windows 机器上的自定义客户端

绝对。

您可以在 Windows 的服务器上使用 plink 到 运行 命令,假设服务器是 运行ning sshd.

plink user@a.domain.ext echo hi

这会将 "hi\n" 打印到标准输出。

将上面的 echo 替换为 /path/to/perl/script,并将 hi 替换为脚本需要的任何命令行参数。

plink 可在此处获得:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

多次这样做的一个警告个人注意事项是,perl 脚本将 运行 所在的环境远不如您通过完整的 SSH 会话登录时所经历的环境完整,并且 运行交互式命令。您通常期望的许多环境变量都未设置。

例如,在上面的命令中使用 "set | wc -l" 只生成了 39 个已定义的环境变量,但是在交互式 SSH 会话中,定义了 57 个环境变量。您必须确保您的 perl 脚本不依赖于尚未设置的环境变量。例如,您可能需要为它使用的任何模块使用完整路径,或者在 shebang 行中使用 -I 标志,因为 @INC 可能不是您期望的那样。