0

我正在使用 plink 在 Unix 远程机器上运行命令。命令是:

ls -1trd testegrep.txt |tail -1 |xargs tail -f| grep 's';

我发送此命令的方式是使用带有一组命令的文件,例如:

plink.exe -ssh -t -l user -pw pwd tst.url.pt -m commands.out

当我以这种方式运行命令时,plink 不会收到任何输入。似乎正在等待输入。但是如果我运行:

plink.exe -ssh -t -l user -pw pwd tst.url.pt "ls -1trd testegrep.txt |tail -1 |xargs tail -f| grep 's';"

我得到了预期的结果。

我没有将 plink 与带有命令的文件一起使用,因为我选择了。我正在使用一个测试自动化软件,它允许我在远程主机上运行测试,这就是该工具的工作方式。

对出了什么问题有任何想法吗?

4

2 回答 2

1

我测试了你提供的命令,它没有问题。

可能问题与以下有关:

  1. 服务器的主机密钥未缓存在注册表中。
  2. 文件路径不正确。
  3. 该文件为空。
于 2011-08-11T08:57:48.683 回答
0
  1. 包括服务器主机密钥
  2. 最重要的是,您需要使用-m参数包含 unix 配置文件

您可以将所有命令包含在保存配置文件的同一文件中。

$Output = ((plink.exe -hostkey hostkey -l UNAME -i SSHKEY -P 22 -ssh server -batch -m PROFILE) | ? {$_ -ne ""})
于 2021-06-15T20:04:17.767 回答