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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Fwd: Dificuldade com loop


From: Jonathan Lessa
Subject: Re: [shell-script] Fwd: Dificuldade com loop
Date: Sun, 18 Aug 2013 19:57:42 -0300

Testei aqui e aconteceu o mesmo comigo, ainda estou tentando entender o que
é, mas consegui fazendo da seguinte forma:


[root@srv1 ~]# cat test
#!/bin/bash
sshpass -p 'jh&on_19' ssh -l root -o "ConnectTimeout=3" -o
StrictHostKeyChecking=no $1 exit
(( $? == 0 )) && echo "logon OK no servidor $1" || echo "falha de logon no
servidor $1"


[root@srv1 ~]# cat linux_servers.txt
192.168.0.20
192.168.0.2
192.168.0.200
192.168.0.10
192.168.0.3
192.168.0.200
192.168.0.1


[root@srv1 ~]# cat linux_servers.txt | xargs -n1 /root/test
ssh: connect to host 192.168.0.20 port 22: No route to host
falha de logon no servidor 192.168.0.20
ssh: connect to host 192.168.0.2 port 22: No route to host
falha de logon no servidor 192.168.0.2
logon OK no servidor 192.168.0.200
ssh: connect to host 192.168.0.10 port 22: No route to host
falha de logon no servidor 192.168.0.10
ssh: connect to host 192.168.0.3 port 22: No route to host
falha de logon no servidor 192.168.0.3
logon OK no servidor 192.168.0.200
ssh: connect to host 192.168.0.1 port 22: Connection refused
falha de logon no servidor 192.168.0.1




Perceba que ele consegue completar o teste em todos os servidores.

Assim que conseguir resolver com o loop aviso.




Em 18 de agosto de 2013 16:11, Thiago Alencar - Yahoo <
address@hidden> escreveu:

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



-- 
Att.:
Jonathan Lessa


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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