【问题标题】:How do I execute a script on another server using FTP in UNIX? How to pass variable on it?如何在 UNIX 中使用 FTP 在另一台服务器上执行脚本?如何传递变量呢?
【发布时间】:2016-09-24 12:10:06
【问题描述】:

假设我有两台服务器 A 和 B。
而在服务器B上,我有一个脚本test.sh

我想使用它们之间的 FTP 连接从服务器 A 执行此 test.sh,并且我想将一个变量传递给 B 的脚本,但该变量是在 A 中定义的。

如果我从 A SSH 到服务器 B, 在 ssh 命令之后,我将在 B 处执行 shell 脚本。 但是如果我想添加一个变量(我在 A 时定义的) 作为 B 脚本的参数。我该怎么做?有什么建议吗?

请提出建议。

提前致谢。

【问题讨论】:

    标签: bash shell variables unix ftp


    【解决方案1】:

    一些,但不多,FTP 服务器支持SITE EXEC command

    在常见的*nix ftp客户端中,可以使用quote命令执行SITE FTP命令:

    quote SITE EXEC test.sh param1 param2
    

    但这可能不适用于您的服务器。在大多数情况下,您将无法通过 FTP 执行 shell 命令。

    如果您有 SSH/shell 访问权限,请使用 ssh 执行脚本。

    【讨论】:

    • 我试图使用 SSH 连接,在连接到机器 B 后,我想在 B 上执行一个脚本,但我也想将一个变量从 A 服务器传递给 B 的脚本作为参数它。你能建议吗?
    • 但这是一个完全不同的问题。这个是关于 FTP 的。我相信我已经回答了。考虑接受我的回答。并为 SSH 发布一个新问题,并确保包含您现在拥有的代码。
    【解决方案2】:

    如果没有看到您的代码,很难确切地看到您正在尝试做什么,但是如果您使用双引号,则应该在将变量的值发送到远程主机之前对其进行插值,例如:

    ssh user@127.0.0.1 "~/bin/script.sh $Local_Variable"
    

    【讨论】:

    • 在 ssh 之后,服务器 B 上出现了一些欢迎消息和横幅,因此与 ssh 相关的命令在机器 B 的终端到来之前执行。这个问题有什么解决办法吗?
    • 您能否发送您正在尝试做的事情以及您得到的响应?
    猜你喜欢
    • 2016-10-06
    • 2023-03-14
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多