给定一个由 IP 地址和字符串行组成的输入文件,如何循环遍历每一行,并使用 IP 地址和字符串执行命令?我想要为每一行运行的命令的示例是:
ssh [email protected] cat /etc/component10/version | grep 'Version\|Project' >> /tmp/component_ver.txt
假设不需要密码。我希望脚本足够强大,能够在“...(是/否)?”的情况下回答“是”。登录时遇到提示。
输入文件示例:
192.168.0.10 component10
192.168.0.20 component20
192.168.0.30 component30
答案1
以下代码将执行您想要的操作。
while read -r server _; do ssh -n -o StrictHostKeyChecking=no root@"$server" "grep -E 'Version|Project' /etc/component10/version" >> /tmp/component_ver.txt; done < serverfile
答案2
cat INPUT|while read host component; do
ssh -o StrictHostKeyChecking=no user@$host cat /etc/$component/version | grep 'Version\|Project' >> /tmp/component_ver.txt
done