ssh创建子进程的bash脚本
我想远程登录几个主机,并检查一些配置。为此我写了一个小剧本。它有两个文件。一个用于ip地址列表,另一个用于脚本ssh创建子进程的bash脚本,bash,Bash,我想远程登录几个主机,并检查一些配置。为此我写了一个小剧本。它有两个文件。一个用于ip地址列表,另一个用于脚本 cat iplist 192.168.1.10 192.168.1.11 192.168.1.12 我的剧本: cat script.sh #!/bin/bash while read ip; do sshpass -p 'root' ssh root@$ip "hostname" echo "$ip" done < iplist cat script.
cat iplist
192.168.1.10
192.168.1.11
192.168.1.12
我的剧本:
cat script.sh
#!/bin/bash
while read ip;
do
sshpass -p 'root' ssh root@$ip "hostname"
echo "$ip"
done < iplist
cat script.sh
#!/bin/bash
读ip时;
做
sshpass-p'root'ssh root@$ip“主机名”
回音“$ip”
完成
上面的脚本只显示一个主机名和一个IP,ssh从stdin读取,并在第一次运行时使用所有输入文件
IP\u列表
。您可以使用ssh命令行的-n
选项来指示它不要这样做
其他方法是使用不同的文件描述符读取
ip\u列表
,或使用重定向输入。。。我不明白。请您解释一下,您是否传递了-n
选项,例如ssh-n root@$ip“hostname”
。否则,ssh将读入标准输入(在您的情况下,您是从一个文件传递输入,因此它可以一次性读入整个文件)。请参阅手册页并阅读-n
的说明: