【发布时间】:2015-02-04 23:32:43
【问题描述】:
是否可以从 Windows 在该服务器上运行位于远程服务器上的 perl 脚本?每次在 Windows 上做某事时,我都想在远程服务器上完成一项工作。
【问题讨论】:
标签: perl remote-server
是否可以从 Windows 在该服务器上运行位于远程服务器上的 perl 脚本?每次在 Windows 上做某事时,我都想在远程服务器上完成一项工作。
【问题讨论】:
标签: perl remote-server
你必须让某物监听指令来运行脚本,然后你必须发送指令。
您可以采取多种方法,包括:
curl 或 Windows 机器上的浏览器请求它的 URL【讨论】:
Invoke-Command 可以在远程机器上运行命令。 github.com/PowerShell/PowerShell
绝对的。
假设服务器正在运行sshd,您可以使用plink 从Windows 在服务器上运行命令。
plink user@a.domain.ext echo hi
这会将“hi\n”打印到标准输出。
将/path/to/perl/script 替换为上面的echo,并将hi 替换为脚本所需的任何命令行参数。
plink 在这里可用:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
多次执行此操作的个人注意事项是,运行 perl 脚本的环境远不如通过完整 SSH 会话登录并交互式运行命令时所体验的环境完整。您通常期望的许多环境变量都未设置。
例如,在上面的命令中使用“set | wc -l”只定义了 39 个环境变量,但是从交互式 SSH 会话中定义了 57 个环境变量。您必须确保您的 perl 脚本不依赖于尚未设置的环境变量。例如,您可能需要对其使用的任何模块使用完整路径,或者在 shebang 行中使用 -I 标志,因为 @INC 可能不是您所期望的。
【讨论】: