shell 命令行语句
第一步:
ssh免密码登陆【用公钥,私钥】
第二步:
#!/bin/bash while read server;do ssh -n $server "$@" 2>&1 |sed "s/^/$server: /" & done wait
./bunsan2.sh free < servers.txt
注释:while read server 把输入的内容当做变量 server
-n ssh的选项,不进行标准输入的读取。
"$@" 进行循环 。
2 >&1 如果没有这个命令,ssh 命令写入到标准错误输出的内容就不会传递给sed命令。它的作用就是 将标准错误输出的开头指定为标准输入相同。
& 后台处理。如果不这样的话, 一条命令执行过长,才能执行后面一条命令。
第三步:
servers.txt文件里面的内容
root@58.241.41.141 root@58.241.41.142 root@58.241.41.143
./bunsan2.sh free < servers.txt
就可以看到三排结果了。
./bunsan2.sh free < servers.txt >dgx.txt 或者这样,继续重定向。
举例二:
./bunsan2.sh uptime < servers.txt | awk '{print $11 }' |sed 's/,//g'