我正在尝试使用 SSH 在远程计算机上的集群上运行本地脚本(例如 hostname.sh),但出现以下错误:
> ssh -A _remote ssh -A _cluster 'bash' < hostname.sh
stdout: write: Broken pipe
在此示例中,文件 hostname.sh 仅输出主机名,但通常可能更复杂。该错误可能是由于管道使用不正确造成的,因为以下工作原理:
ssh -A _remote ssh -A _cluster hostname
> _cluster_name
我已经尝试了几种解决方案,但都以一种或另一种方式失败,它们归结为 ssh 到 _remote,然后尝试读取 hotsname.sh,在这种情况下不可用。有效的方法是将 hostname.sh 复制到 _remote,通过 SSH 复制到远程,然后运行:
ssh _cluster "bash" < hostname.sh
但这意味着我必须在本地和远程计算机之间不断同步 hostname.sh 。
任何帮助表示赞赏。