远程 SSH 命令仅在 shell 脚本中失败并出现错误:“没有这样的文件或目录”

远程 SSH 命令仅在 shell 脚本中失败并出现错误:“没有这样的文件或目录”

我正在尝试使用 ssh 在远程系统上运行脚本,当我在终端上运行命令时,它执行得很好,但是当我将命令嵌入到 shell 脚本中时,它会返回错误。

命令1:

cmd="ssh root@IP \"python /pathtoscript\""
`$cmd` > log.log

对于上述命令,我尝试了堆栈交换中的以下建议:

 cmd="ssh root@IP \"bash -c 'python /pathtoscript'"
 cmd="ssh root@IP '/user/bin/python /pathtoscript'"

命令2:

ssh root@IP "ls -1v /path"

注意:所有这些命令都在终端上运行。

编辑:

如果我在终端上运行该命令,它会正常执行并显示输出。现在,如果将相同的命令添加到脚本 (.sh),我会看到以下错误:

bash: ssh root@IP 'python /pathtoscript' : No such file or directory

答案1

好吧,我自己不是专家,但这可能会有所帮助,

当您使用 ssh 命令时,您实际上输入了另一台机器“root@IP”,如您所提到的

当你在其他机器上时,如何在那里执行你的本地文件,首先你需要将你的文件发送到那里,然后只有你可以在那里执行它,

现在试试这个

#scp file_you_need_to_send 用户名@RemoteHost : 目标系统上的目标位置 这应该将您的脚本复制到目标系统上

#ssh 用户名@远程主机进入目标系统

然后执行您各自的脚本。

:P

答案2

相关内容