运行 远程服务器上的 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
可能不是您期望的那样。
是否可以从 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
可能不是您期望的那样。