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'

 

posted @ 2015-05-25 13:57  kin2321  阅读(257)  评论(0编辑  收藏  举报