O código a seguir fará o que você quiser.
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
Dado um arquivo de entrada que consiste em linhas de endereços IP e cadeias de caracteres, como posso percorrer cada linha e executar um comando usando o endereço IP e a cadeia de caracteres? Um exemplo do comando que quero executar para cada linha é:
ssh [email protected] cat /etc/component10/version | grep 'Version\|Project' >> /tmp/component_ver.txt
Suponha que uma senha não seja necessária. Eu gostaria que o script fosse robusto o suficiente para responder sim se o "... (sim / não)?" prompt é encontrado durante o login.
Exemplo de arquivo INPUT:
192.168.0.10 component10
192.168.0.20 component20
192.168.0.30 component30
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
Tags command-line