While 循环不返回控制

While 循环不返回控制

以下 shell 脚本仅适用于第一台服务器,不会循环到下一台服务器。我在 ssh 命令之前尝试了 0<,但连接后它仍然没有返回到 shell 脚本。

#!/bin/sh
while read IP
do
ssh [email protected] " ssh root@$IP 'ls -lht /log/cdr-csv/ ' " > /tmp/$IP.txt
done << here_doc
18.17.6.19
18.17.10.24
here_doc

如何在第二台服务器 18.17.10.24 上运行相同的命令?

答案1

您应该将要执行的脚本发送到远程服务器。您编写的脚本将无法正常工作,因为是here_doc在本地而不是远程进行评估。

看看这个答案我向另一位用户提供了此主题。

答案2

ssh除非您提供-n选项,否则将读取 stdin。因此,第一个 IP 地址由 占用read IP,其余的 here-doc 由 占用。将其更改为ssh [email protected]ssh -n [email protected]

相关内容