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

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

Re: [shell-script] Problema com o FOR


From: Raul Libório
Subject: Re: [shell-script] Problema com o FOR
Date: Sat, 18 Aug 2018 12:15:36 -0300

dig @a1.a.dns.br soa com.br am.br 9guacu.br | awk '/.br+.+2018/''{ print $1,"=",$7}'
com.br. = 2018230364
am.br. = 2018230364
9guacu.br. = 2018230364

Em sáb, 18 de ago de 2018 às 10:49, address@hidden [shell-script] <address@hidden> escreveu:
 

Prezados tudo bem?


Eu estou escrevendo um código que verifique a versão SOA dos DNS's, mas encontrei um grande problema, 

quando fazemos uma requisição ao DNS usando  o código (dig @a1.a.dns.br soa com.br am.br 9guacu.br +short | cut -d " " -f3) ele irá

retornar a versão SOA das 3 zonas dns (com.br, am.br e 9guacu.br) sendo no formato abaixo:


2018230324

2018230324

2018230324


O meu objetivo é fazer com que a saída seja assim:


com.br = 2018230324

am.br = 2018230324

9guacu.br = 2018230324


Eu tentei fazer com FOR, mas o resultado de saída é assim:


com.br am.br 9guacu.br - 2018230324

com.br am.br 9guacu.br - 2018230324

com.br am.br 9guacu.br - 2018230324


Então eu peguei os espaços entre as zonas e coloquei um \n e ficou assim a saída:


 com.br

am.br

9guacu.br - 2018230328

 com.br

am.br

9guacu.br - 2018230328

 com.br

am.br

9guacu.br - 2018230328



Poderiam me ajudar? desde já Obrigado.



Segue o trecho do código:


elif [ $1 = y ] 

then

        case "$2" in

    

           a)   

                shift 2;

                echo "dig "omiti esse" soa $* +short | cut -d \" \" -f3"

                dig "Omiti esse" soa $* +short | cut -d " " -f3 

echo "

"               

                for i in {1..8}

                do

                echo "dig @a$i.a.dns.br soa $* +short | cut -d \" \" -f3"

                soa=$(dig @a$i.a.dns.br soa $* +short | cut -d " " -f3) 

                zona=$(sed 's/ /\n/g' <<< $*)   

                        for ver in $soa ; do

                        echo "$zona - $ver"

        done

        done


                ;;


Explicação:


Ele verifica o primeiro argumento, se for Y ele verifica se o segundo argumento é "a", se for ele da um shift e elimina os 2 primeiros argumentos (o Y e o A) deixando como argumento

somente as zonas dns.

Como falado, o objetivo é mostrar a zona mais a versão, separado por "=", a quantidade de zonas vai variar também.




--
Raul Libório
http://rauhmaru.blogspot.com/
openSUSE Member | Linux User #4444581

/etc/httpd/conf.d/ssl.conf:7
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.

reply via email to

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