【问题标题】:OVMS remote command execution using Plink使用 Plink 执行 OVMS 远程命令
【发布时间】:2014-09-02 15:19:33
【问题描述】:

我正在尝试使用 plink 在 OVMS 服务器上执行远程命令。当我尝试执行一个简单的命令时,它工作正常:

plink -ssh -l USERID HOST-pw PASSWORD DIR

但是当我开始使用一些复杂的命令时,它会抛出错误:

plink -ssh -l USERID HOST-pw PASSWORD wnb search/keys="TRN|0567 6789"/log/sys

请提出建议。

【问题讨论】:

  • plink 又名 PuTTY Link,类似于 ssh 的命令行连接工具?在不了解引发的错误的情况下,很难提出任何建议。通常,这是一个引用问题。您是否尝试引用 VMS 命令(需要转义内部引号)?
  • 另外,虽然“搜索”看起来像 OpenVMS 命令搜索,但它并不相同。该命令是否在 telnet/ssh 会话中以交互方式工作?OpenVMS 搜索有 /LOG 和 /KEY 但没有 /SYS,也没有 /KEYS 和 /KEY 仅指定位置和大小。因此,您可能需要一个环境设置(sylogin.com、login.com),它不能立即在“plink”内容中可用。更有可能的是,您只需要引用整个命令和/或转义内部引用。尝试不使用内引号,只搜索 TRN 就很有意义。
  • 无法识别的命令动词 - 检查有效性和拼写是错误消息。如何标记转义字符?
  • "google: plink putty quotes" ?stackoverflow.com/questions/6738038/…
  • 什么被标记为“无法识别的命令动词”,wnb 还是 6789?据我所知,要转义 DOS/Windows 命令的内引号,请将它们加倍:"wnb search/keys=""TRN|0567 6789""/log/sys"

标签: plink openvms vms


【解决方案1】:

尝试和错误会结出果实。事实上,正如 Hein 所暗示的那样,问题在于引号没有正确传输,但语法不同。

这是对我有用的语法(Windows:plink(0.63) >> VMS):

plink -ssh -l USER HOST -pw PWD "mycommand arg, """quoted arg1""", """quoted arg2""" /opt1 /opt2"

在 VMS 上导致:

mycommand arg, "quoted arg1", "quoted arg2" /opt1 /opt2

因此:plink>>VMS double-quote=""",但< > | << >> 字符可能仍然存在问题,因为 Windows cmd CLI 会将这些字符与管道混淆。

更好:使用plink -m cmds-file 选项在本地文件中传递远程命令:

plink -ssh -l USER HOST -pw PWD -m cmds.vms

cmd.vms 文件包含的位置:

mycommand arg, "quoted arg1", "piped|arg" /opt1 /opt2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2011-07-06
    • 2020-12-04
    相关资源
    最近更新 更多