[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fwd: Dificuldade com loop
From: |
Thiago Alencar - Yahoo |
Subject: |
Fwd: Dificuldade com loop |
Date: |
Sun, 18 Aug 2013 16:11:04 -0300 |
Olá amigos da lista,
Primeira vez que venho aqui buscar ajuda dos "universitários e mestres".
Costumo acompanhar a lista e estou no momento estudando o livro do Julio.
Seguinte, caiu um desafio lá na empresa de testarmos o login em todos os
servidores para validarmos os acessos. Como são 1042 IPs resolvi partir
para um Script pois só com desafios do gênero pra que eu tome vergonha na
cara e aprendar a scriptar. Admiro muito a ajuda desta lista, a boa vontade
de todos! Isso tem me estimulado a estudar e sair da inêrcia.
Primeiramente consegui fazer um script para descobrir o S.O. de cada IP
através da TTL na resposta do Ping. Segue para críticas:
#!/bin/bash
while read SERVERS ; do
PING=$(ping -c1 -W1 $SERVERS);
EXIT_CODE_TTL=$?
if [ $EXIT_CODE_TTL -eq 1 ]
then
echo "O Servidor $SERVERS não respondeu ao PING"
echo "Servidor:$SERVERS;Ping:Not;SO:What" >> serverporSO.txt
else
TTL=`echo $PING |grep ttl |awk '{print $13}' | cut -d "=" -f 2`
if [ $TTL -ge 100 ]
then
echo "O Servidor $SERVERS é Windows!"
echo "Servidor:$SERVERS;Ping:OK;SO:Windows" >> serverporSO.txt
else
if [ $TTL -le 64 ]
then
echo "O Servidor $SERVERS é Linux!"
echo "Servidor:$SERVERS;Ping:OK;SO:Linux" >> serverporSO.txt
fi
fi
fi
done < listageral.txt
NOSSA, COMO FOI BOM CONSEGUIR FAZER ISSO PELO MENOS! RSRS
Só que no segundo script que travei e não consigo descobrir. Já usei o
debug do Bash mas mesmo assim não saí do lugar. Fiz e refiz, inverti a
ordem, tentei de tudo.
O Segundo script é para logar nos servidores linux, fazer um logon (pra
testar a autenticação) e após isso um exit, pegando o Exit Code para salvar
num txt como relatório. O problema é que da lista de IPs com S.O. Linux,
todos os 5 primeiros dão erros de autenticação, e quando chega no primeiro
sucesso de logon, ele termina o script e não continua.
Segue:
#!/bin/bash
while read SERVERS ; do
sshpass -p "xxxxx" ssh -l user -o "ConnectTimeout=3" -o
StrictHostKeyChecking=no $SERVERS "exit"
EXIT_CODE_SSH=$?
if [ $EXIT_CODE_SSH -eq 5 ]
then
echo "Erro de autenticação no Servidor $SERVERS."
echo "Servidor:$SERVERS;Ping:OK;SSH:OK;Logon:Failed" >>
linuxservers.txt
else
if [ $EXIT_CODE_SSH -eq 255 ]
then
echo "Erro provável de conexão na porta 22 no servidor
$SERVERS."
echo "Servidor:$SERVERS;Ping:OK;SSH:Not;Logon:Not" >>
linuxservers.txt
else
if [ $EXIT_CODE_SSH -eq 0 ]
then
echo "Maravilha! Tá logando no servidor $SERVERS"
echo "Servidor:$SERVERS;Ping:OK;SSH:OK;Logon:OK" >>
linuxservers.txt
fi
fi
fi
echo $SERVERS
done < linux_servers.txt
E alguém conheceria uma maneira de realizar o mesmo teste no windows? O
problema é que não rola a opção "-s" do rdesktop no windows server 2008 :(
Vou testar um rdesktop plus no XP que achei no google, mas aceito sugestões!
Já até imagino que deva ser muito besta e algo que não to conseguindo
enxergar, mas tudo bem rs!
Thiago
São Paulo
[As partes desta mensagem que não continham texto foram removidas]
- Fwd: Dificuldade com loop,
Thiago Alencar - Yahoo <=