shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]