como verificar todos os clientes se eles contiverem arquivos com uma linha específica de texto

3

Por isso, vou pedir algo importante aqui e isso é se eu puder verificar de um dispositivo todos os outros dispositivos conectados para ver se eles têm uma linha de texto específica em qualquer um de seus arquivos.

É um pouco como usar o comando grep -rl "text to find" "file location" , mas isso é feito em uma máquina em que você está atualmente. Agora, o que estou perguntando é que a máquina que estou digitalizando todos os outros dispositivos na mesma pasta para arquivos contendo o texto que tem que ser encontrado e se ele faz imprimir o nome da máquina com os arquivos que contêm os arquivos como ele faz em uma máquina

/etc/asterisk/sip.conf
/etc/network/interfaces
/etc/firewall

É assim que funciona numa máquina, mas agora espero que seja possível fazê-lo assim

machine name    /etc/firewall
machine name    /etc/network/interfaces

Ou se ainda pode ser feito um pouco melhor

machine name

    /etc/firewall
    /etc/network/interfaces

Eu posso estar perguntando o impossível, mas eu vi o Ubuntu fazer o impossível antes

update1: desde que eu obtive uma solução da Rinzwind, consegui entrar em certas máquinas, mas outras tinham a porta 22 fechada, então ainda tenho esse problema

update2: problema com a porta foi resolvido adicionando -p 220 entre user@host e "grep na solução de Rinzwind

    
por delfiler 07.05.2018 / 14:16

1 resposta

3

Isso

ssh user@host -p port "grep -rl 'help' /home/" >> /tmp/search.txt

retornará qualquer arquivo dentro de / home que contenha "help" no servidor remoto {host} em {port} usando {user} e o adicione a "/tmp/search.txt". Isso pressupõe que {host} aceitará {user} como um usuário válido e poderá solicitar senhas.

Para que isso funcione em várias máquinas, você pode ler um arquivo de configuração com usuários e hosts e fazer uma iteração sobre eles. Provavelmente seria mais fácil fazer isso em "python" ou "perl", já que você pode facilmente manipular e formatar os resultados em cada passagem e, em seguida, escrever para stdout os resultados.

    
por Rinzwind 07.05.2018 / 14:33