Como perguntar a vários computadores por ssh através do mesmo comando [duplicado]

3
computer1:~$ ssh -p 2222 [email protected] 'who -b' | \
> awk '{print $(NF-1)" "$NF}' >> textfile.txt

Esse código me ajuda a descobrir quando o computador2 foi inicializado pela última vez e coloca as informações em um arquivo de texto chamado textfile.txt. Mas e se eu quiser perguntar computador2 e um computador3 a mesma coisa no mesmo comando e, em seguida, coloca as informações no arquivo de texto? Como faço para pedir vários computadores no mesmo comando?

Obrigado!

    
por Ludvig 07.11.2017 / 13:59

2 respostas

6

Você repete a pergunta:

ssh -p 2222 [email protected] 'who -b' | awk '{print $(NF-1)" "$NF}' >> textfile.txt
ssh -p 2222 [email protected] 'who -b' | awk '{print $(NF-1)" "$NF}' >> textfile.txt

O "> >" irá anexá-lo a "textfile.txt".

Se você colocar os endereços IP em um arquivo de texto, poderá percorrê-lo (pseudoexemplo):

#!/bin/bash
filename='ipaddresses.txt'
while read p; do 
    ssh -p 2222 $p 'who -b' | awk '{print $(NF-1)" "$NF}' >> textfile.txt
done < $filename
    
por Rinzwind 07.11.2017 / 14:06
2

Crie um script e execute isso:

#!/bin/bash

ssh -p 2222 [email protected] 'who -b' | awk '{print $(NF-1)" "$NF}' >> textfile.txt
ssh -p 2222 [email protected] 'who -b' | awk '{print $(NF-1)" "$NF}' >> textfile.txt

Não fique com chmod +x myscript.sh para torná-lo executável.

Você também precisará de uma configuração de autenticação baseada em chave, um script não manipulará facilmente os desafios de senha.

    
por HellionWisp 07.11.2017 / 14:08