Como ler o arquivo de entrada e agir em cada linha

1

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  
    
por Bernie 18.08.2016 / 15:52

2 respostas

1

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
    
por 18.08.2016 / 16:24
0
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
    
por 18.08.2016 / 16:01