使用'在读取'时迭代列表。使用bash

时间:2016-07-20 21:55:47

标签: linux bash ssh while-loop

我有一个IP地址列表,我的最终目标是ssh到每个地址,并一次一个地重置它们。我被要求使用Linux / Bash,我不是很熟悉。我的代码现在将从列表中获取第一个IP,并连接到它,但它永远不会移动到那一点。我认为问题介于read oneip3do代码之间。非常感谢任何帮助。

我运行此脚本的方式如下:(我在单独的文本文件中有一个IP地址列表):

./runscript.txt ip_list.txt


while read oneip3
do
(sleep 5
echo "yes\r"
sleep 3
echo -e "password\r"
sleep 3
echo -e "reset\r"
sleep 3
echo -e "yes\r"
sleep 20
echo -e "\r"
) | ssh -t -t -oHostKeyAlgorithms=+ssh-dss admin@$oneip3
done < $1

1 个答案:

答案 0 :(得分:0)

您没有提供SSH参数。所以它打开了一个交互式shell。 被卡在第一台机器上是一个很好的理由(也许还有其他原因......)

试试这个来调试

... | ssh -t -t -oHostKeyAlgorithms=+ssh-dss "admin@$oneip3" pwd

关于StrictHostKeyChecking接缝的评论中的其他评论也很好(如果你真的担心安全问题,你可以先手动部署所有需要的密钥)