Obter IFCONFIG em massa de todos os Linux da rede.

1. Obter IFCONFIG em massa de todos os Linux da rede.

Daniel Heras
danielheras

(usa Red Hat)

Enviado em 02/07/2019 - 14:23h

Prezados,

Alguem consegue me dar uma força ? Preciso de um SCRIPT para obter o IFCONFIG de uma determinada lista de IPS de minha rede.
Gostaria que o SCRIPT puxasse esta lista de IPS de um arquivo TXT, apos isso seria me solicitado o usuario / senha de root e apos concluido é gerado um arquivo TXT para cada IP com as respectivas informações do IFCONFIG.

Muito obrigado pessoal, abraço a todos!


  


2. Re: Obter IFCONFIG em massa de todos os Linux da rede.

Vinicius Mello
vmmello

(usa Slackware)

Enviado em 02/07/2019 - 16:48h

Segue um script de exemplo.

Pode executar como:
./pega-ifconfig.sh arquivo-com-ips.txt 


#!/bin/bash

usage() {
echo "Usage: ${0##*} <arquivo_txt>

Le os IPs no arquivo especificado e tenta pegar a saida do comando
ifconfig por ssh em root@ip.
"
exit 1
}

[ $# -eq 0 ] && usage

arquivo_ips="$1"
if [ ! -f "$arquivo_ips" ]; then
echo "Erro: arquivo nao existe '$arquivo_ips'" 1>&2
exit 1
fi

dir_saida=$(mktemp -d) || { echo "Falha ao criar diretorio temporario" 1>&2 ; exit 1; }

declare -i n=0
while read ip; do
[ -z "$ip" ] && continue # pula linhas em branco
[ "${ip:0:1}" == "#" ] && continue # pula linhas que comecam com #

echo "Pegando a lista do ifconfig em root@$ip..."
sleep 1
saida_txt=$(ssh -f root@$ip ifconfig )
if [ $? -eq 0 ]; then
n+=1
arq_saida="$dir_saida/$ip.txt"
echo "$saida_txt" >$arq_saida
else
echo "Falha ao executar comando em root@$ip..." 1>&2
sleep 1
fi
done < "$arquivo_ips"

if [ $n -gt 0 ]; then
echo
echo "Lista de IPs salva no diretorio $dir_saida"
ls -l "$dir_saida"
fi







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts