以下 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]