Shell Script nosso de cada dia - Episódio 4

Publicado por Wagner Souza em 08/01/2016

[ Hits: 2.507 ]

Blog: https://zerotoherosec.blogspot.com/

 


Shell Script nosso de cada dia - Episódio 4



Retomando nossas atividades...

Um sysadmin precisa descobrir quais máquinas em sua rede possuem o sistema operacional Windows ou Linux. Esta tarefa deve ser feita com um script em shell.

Solução

Um script simples pode ser criado utilizando o ping e obtendo a resposta do TTL, que nada mais é que o tempo de vida de um pacote. O Windows possui um TTL de 128, enquanto máquinas com os sistemas operacionais Linux e Unix possuem um de 64. Sendo assim, segue o script.

#!/bin/bash

IPs="192.168.0.104 192.168.0.101"
j=0


for i in $IPs;
do

testIP=$(ping -c1 $i | grep -i ttl= | cut -d' ' -f6 | sed 's/.*ttl=//')

if [ $testIP -eq 128 ]
then 
	echo "Maquina windows"
		else 
			echo "Maquina linux"
fi

done

Acrescente a quantidade de IPs que achar conveniente ao array. Uma dica que sempre dou é melhorar o script e compartilhar o conhecimento.

Essa foi mais uma dica de Shell Script. Até a próxima!

Outras dicas deste autor

Otimizando o uso da memória RAM do sistema

Exercício Prático LPIC 10

Navegação anônima

Configurando script de inicialização no openSUSE

Trabalhando com datas no LibreOffice

Leitura recomendada

Processos rivais

Exibir arquivo de grupos /etc/group de forma personalizada conforme o usuário

Vundle/Bundle - Plugin para o Vim

Verificando se um arquivo cabe dentro de um DVD

Gerenciador de pacotes em SHELL SCRIPT - PKGMGR

  

Comentários
[1] Comentário enviado por juniorze em 19/04/2018 - 13:55h

Sei que já estamos a quase 2 anos depois...
Mas dei uma melhorada para array's
e se o destino não for encontrado, pq assim o resultado é:
./Ping.sh: linha 9: [: -eq: esperava operador unário
Maquina linux

Segue nova versão:

#!/bin/bash
clear
IPs=("172.16.18.16" "172.16.18.204" "172.16.18.253")

for i in ${IPs[@]};
do
testIP=$(ping -c1 $i | grep -i ttl= | cut -d' ' -f6 | sed 's/.*ttl=//')
if [ $testIP -eq 128 ] 2>>/dev/null
then
echo "Maquina windows"
elif [ $testIP -eq 64 ] 2>>/dev/null
then
echo "Maquina linux"
else
echo "Destino Não Encontrado"
fi
done



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts