作者blackspace98 (~我爱夏天~)
看板LinuxDev
标题[问题] sshpass大量执行指令
时间Mon Jun 1 21:58:15 2015
我有一个list与script如下
list.txt
10.10.1.1,gary,gary@123
10.10.1.2,belle,belle@123
------------------------------------
#! /bin/bash
while IFS="," read ip user user_passwd
do
ping -c 3 -w 3 $ip > /dev/null 2>&1
if [ $? != 0 ]; then
echo $ip down!
else
echo $ip UP!
fi
done < list.txt
可以执行出我要的结果
但是,换成以下的方式
#! /bin/bash
while IFS="," read ip user user_passwd
do
ping -c 3 -w 3 $ip > /dev/null 2>&1
if [ $? != 0 ]; then
echo $ip down!
else
echo $ip UP!
sshpass -p $user_passwd ssh -o StrictHostKeyChecking=no
$user@$ip 'hostname'
fi
done < list.txt
出来的结果却是
10.10.1.1 UP!
localhost1
请教各位这有解决方式吗? 谢谢
sshpass安装参考
http://www.softwareprojects.com/resources/programming/t-ssh-no-password-without-any-private-keys-its-magi-1880.html
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.174.126
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1433167102.A.58B.html
1F:推 yvb: (1) while ... read ... 1<&5; do ... ; done 5< list.txt 06/02 02:25
2F:→ yvb: (2) sshpass ... ssh ... < /dev/null 06/02 02:25
3F:→ yvb: 两种方式任选一种应该都行得通. 06/02 02:27
4F:→ yvb: (1) 的 1<&5 手误, 应为 0<&5 才对 :P 06/02 15:19