Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ssh创建子进程的bash脚本_Bash - Fatal编程技术网

ssh创建子进程的bash脚本

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.

我想远程登录几个主机,并检查一些配置。为此我写了一个小剧本。它有两个文件。一个用于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.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
的说明: