Pular para o conteúdo

Shell Script nosso de cada dia - Episódio 4

Dica publicada em Shell Script / Avançado
Wagner Souza wagnerfs
Hits: 4.519 Categoria: Shell Script Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Limitar acesso de mais de um usuário via SSH

Servidor Proxy para uso do APT e ZYPPER - Configuração

Shell Script nosso de cada dia - Episódio 1

Exercício Prático LPIC 04

Navegação anônima

SSH simultâneo para vários servidores

Criar lançador para o Grafix2

Backup em shell script na virtualização de máquinas (VMWare)

FreeBSD - PF + Altq + MRTG

Substituindo o sleep por um belo cronômetro regressivo

#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

Entre na sua conta para comentar.