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

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

Re: [shell-script] Telnet com Sqlplus


From: Carlos Ferreira
Subject: Re: [shell-script] Telnet com Sqlplus
Date: Wed, 7 Nov 2007 14:58:54 -0200

Edjunior,
acertou de novo, estou postando os dois scripts para que fique no histórico
da lista a solução.
Pessoal obrigado a todos em especial ao Thiago e Edjunior.
[]s

Carlos Ferreira
meusqlplus.sh
#!/bin/bash
# Programa para conectar e abrir sqlplus
# Autor: Carlos Ferreira
# Data: 07/11/2007
# Versão 1.0
# Agradecimentos
# Tiago Barcellos Peczenyj e
# Edjunior Machado

######### INICIAR VARIAVEIS ##############
vl_arqconf=tnsnames.txt
vl_banco=`tr 'A-Z' 'a-z' <<< $1`
######### FUNÇÔES ########################


######### INICIAR PROGRAMA ###############

vl_ip=`cat ${vl_arqconf} | grep -i ${vl_banco} | cut -f2 -d\;`
vl_usuario=`cat ${vl_arqconf} | grep -i ${vl_banco} | cut -f3 -d\;`
vl_senha=`cat ${vl_arqconf} | grep -i ${vl_banco} | cut -f4 -d\;`
./conexao ${vl_ip} ${vl_usuario} ${vl_senha} "ORACLE_SID=${vl_banco}a"

############## fim #######################################
conexão
#!/usr/bin/expect
# Autor: Carlos Ferreira
# Data: 07/11/2007
# Versão 1.0
# Agradecimentos
# Tiago Barcellos Peczenyj e
# Edjunior Machado

set timeout 20

set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set oracmd [lindex $argv 3]

spawn telnet $ip
expect "login:"
send "$user\r"
expect "password"
send "$password\r"
send "$oracmd\r"
send "sqlplus /\r"
interact

########## fim #############

Em 07/11/07, Edjunior Machado <address@hidden> escreveu:
>
>   Hey Sr. Carlos,
>
> <tentando advinhar...>
> pelo log que você passou, parece que o seu script principal está
> passando os parâmetros de forma errônea para o script expect:
>
> > login: usuariosenhaORACLE_SID=sid_do_bancoasqlplus //dev/pts/3: 3004-038
>
> Por acaso, os dados na frente de "login: " não seriam exatamente o que
> você estava passando como parâmetro, porém concatenados?
> Bem, em primeiro lugar, eu tentaria executar o script expect
> manualmente, garantindo que o mesmo está correto. Em seguida,
> verificaria como ele está sendo chamado pelo script principal.
>
> Aproveitando, uma dica (na verdade não tenho certeza se é necessário;
> apesar de cair mais no expect, talvez fugindo de escopo, alguém da
> poderia corrigir caso esteja incorreto): nos comandos de "send" do
> expect, acredito que você precisa enviar também o '\r', simulando o
> seu "Enter" após preenchimento do campo, como em:
>
> > send "$user\r"
>
> Hasta!
>
> jr.
>
>
> On Nov 7, 2007 9:14 AM, Carlos Ferreira 
> <address@hidden<chlferreira%40gmail.com>>
> wrote:
> > Edjunior,
> > realmente o erro era o comentário na mesma linha, obrigado pela ajuda,
> mas
> > agora estou chegando até o login no telnet e a senha não é passada, fica
> > esperando a senha até que ele escreve todos os outros comandos na mesma
> > linha e cai.
> > o erro:
> > AIX Version 5
> > (C) Copyrights by IBM and by others 1982, 2007.
> > login: usuariosenhaORACLE_SID=sid_do_bancoasqlplus //dev/pts/3: 3004-038
> > Login timed out after 60 seconds.
> >
> > Connection closed by foreign host
> >
> > []s
> >
> > Carlos Ferreira
> >
> > Em 07/11/07, Edjunior Machado <address@hidden <edjunior%40gmail.com>>
> escreveu:
> > >
> > > Hey Sr. Carlos,
> > >
> > > apesar de não ter muito know-how no assunto, creio que esse é um
> > > problema no seu script em expect. Procure eliminar os comentários de
> > > final de linha (as frases após '#') ou deixá-los em uma linha sem
> > > código. Por exemplo, tente substituir:
> > >
> > > set ip [lindex $argv 0] # primeiro argumento
> > > set user [lindex $argv 1] # segundo... etc
> > >
> > > por
> > >
> > > # primeiro argumento
> > > set ip [lindex $argv 0]
> > > # segundo... etc
> > > set user [lindex $argv 1]
> > >
> > > Espero ter ajudado.
> > > Hasta!
> > >
> > > jr.
> > >
> > >
> > > On Nov 7, 2007 8:15 AM, Carlos Ferreira 
> > > <address@hidden<chlferreira%40gmail.com>
> <chlferreira%40gmail.com>>
> >
> > > wrote:
> > > > Tiago,
> > > > primeiramente obrigado pela ajuda, mas estou recebendo o seguinte
> erro:
> > > > wrong # args: should be "set varName ?newValue?
> > > > while executing
> > > > "set ip [lindex $argv 0] # primeiro argumento"
> > > > (file "./conexao" line 4)
> > > >
> > > > Meu código:
> > > > #!/bin/bash
> > > > # Programa para conectar e abrir sqlplus
> > > > #
> > > >
> > > > ######### INICIAR VARIAVEIS ##############
> > > > vl_arqconf=tnsnames.txt
> > > > vl_banco=`tr 'A-Z' 'a-z' <<< $1`
> > > > ######### FUNÇÔES ########################
> > > >
> > > >
> > > > ######### INICIAR PROGRAMA ###############
> > > >
> > > > vl_ip=`cat $vl_arqconf | grep -i $vl_banco | cut -f2 -d\;`
> > > > echo $vl_ip
> > > > ./conexao ${vl_ip} USUARIO SENHA "ORACLE_SID=${vl_banco}a"
> > > >
> > > > ########## FIM DO PROGRAMA ###############
> > > >
> > > > #!/usr/bin/expect
> > > > set timeout 20
> > > >
> > > > set ip [lindex $argv 0] # primeiro argumento
> > > > set user [lindex $argv 1] # segundo... etc
> > > > set password [lindex $argv 2]
> > > > set oracmd [lindex $argv 3]
> > > >
> > > > spawn telnet $ip # aqui ele 'pega' o telnet
> > > >
> > > > expect "login:" # aha, pediu o login?
> > > > send "$user " # toma o username do cara!
> > > >
> > > > expect "password:" # mesma coisa.
> > > > send "$password " # facil não?
> > > >
> > > > send "$oracmd" # agora aquele toque final
> > > > send "sqlplus /"
> > > >
> > > > interact # E aqui devolve a interação para o usuario
> > > >
> > > > []s
> > > >
> > > > Carlos Ferreira
> > > >
> > > > Em 06/11/07, Tiago Barcellos Peczenyj 
> > > > <address@hidden<tiago.peczenyj%40gmail.com>
> <tiago.peczenyj%40gmail.com>>
> >
> > > escreveu:
> > > > >
> > > > > use Expect:
> > > > >
> > > > > Inspirado aqui:
> > > > > http://www.osix.net/modules/article/?id=30
> > > > >
> > > > > #!/bin/bash
> > > > > vl_arqconf=tnsnames.txt
> > > > > vl_banco=`tr 'A-Z' 'a-z' <<< $1`
> > > > >
> > > > > vl_ip=`grep -i $vl_banco $vl_arqconf | cut -f2 -d\;`
> > > > >
> > > > > ./conexao ${vl_ip} usuario senha "ORACLE_SID=${vl_banco}a"
> > > > >
> > > > > script 'conexao' abaixo:
> > > > > #!/usr/bin/expect
> > > > > set timeout 20
> > > > >
> > > > > set ip [lindex $argv 0] # primeiro argumento
> > > > > set user [lindex $argv 1] # segundo... etc
> > > > > set password [lindex $argv 2]
> > > > > set oracmd [lindex $argv 3]
> > > > >
> > > > > spawn telnet $ip # aqui ele 'pega' o telnet
> > > > >
> > > > > expect "login:" # aha, pediu o login?
> > > > > send "$user " # toma o username do cara!
> > > > >
> > > > > expect "assword:" # mesma coisa.
> > > > > send "$password " # facil não?
> > > > >
> > > > > send "$oracmd" # agora aquele toque final
> > > > > send "sqlplus /"
> > > > >
> > > > > interact # E aqui devolve a interação para o usuario
> > > > > On Nov 6, 2007 5:19 PM, Carlos Ferreira 
> > > > > <address@hidden<chlferreira%40gmail.com>
> <chlferreira%40gmail.com>
> > > <chlferreira%40gmail.com>>
> > > > > wrote:
> > > > > >
> > > > > > Pessoal
> > > > > > estou com o seguinte problema, fiz o script abaixo dentro de um
> > > script
> > > > > > shell:
> > > > > > #!/bin/bash
> > > > > > # Programa para conectar e abrir sqlplus
> > > > > > #
> > > > > >
> > > > > > ######### INICIAR VARIAVEIS ##############
> > > > > > vl_arqconf=tnsnames.txt
> > > > > > vl_banco=`echo $1 | tr 'A-Z' 'a-z'`
> > > > > >
> > > > > > ######### INICIAR PROGRAMA ###############
> > > > > > vl_ip=`cat $vl_arqconf | grep -i $vl_banco | cut -f2 -d\;`
> > > > > >
> > > > > > (echo usuario; sleep 3; echo senha; sleep 3; echo
> > > > > > ORACLE_SID=${vl_banco}a; sleep 3; echo sqlplus /; sleep 3) |
> telnet
> > > > > > ${vl_ip}
> > > > > >
> > > > > > ####### fim do script ###################
> > > > > >
> > > > > > Acontece que eu queria que o script me deixasse o sqlplus aberto
> na
> > > > > > tela, mas isto não acontece, alguma sugestão?
> > > > > >
> > > > > > Desde ja agradeço a atenção de todos.
> > > > > >
> > > > > > []s
> > > > > >
> > > > > > Carlos Ferreira
> > > > > >
> > > > > >
> > > > >
> > > > > --
> > > > > Tiago B Peczenyj
> > > > > Linux User #405772
> > > > >
> > > > > http://peczenyj.blogspot.com/
> > > > > "what does not kill us makes us stronger"
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Carlos Ferreira
> > > > Analista de Desenvolvimento
> > > > Niterói - RJ - Brasil
> > > > LinuxUser #271002
> > > > http://www.carnivorosemdentes.blogger.com.br/
> > > > ================
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > > >
> > > > ----------------------------------------------------------
> > > > Esta lista não admite a abordagem de outras liguagens de
> programação,
> > > como perl, C etc. Quem insistir em não seguir esta regra será moderado
> sem
> > > prévio aviso.
> > > > ----------------------------------------------------------
> > > > Sair da lista: 
> > > > address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
> <shell-script-unsubscribe%40yahoogrupos.com.br>
> > > > ----------------------------------------------------------
> > > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > > ----------------------------------------------------------
> > > > Servidor Newsgroup da lista: news.gmane.org
> > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > >
> > > >
> > > > Links do Yahoo! Grupos
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> >
> > Carlos Ferreira
> > Analista de Desenvolvimento
> > Niterói - RJ - Brasil
> > LinuxUser #271002
> > http://www.carnivorosemdentes.blogger.com.br/
> > ================
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ----------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > ----------------------------------------------------------
> > Sair da lista: address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
> > ----------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
>  
>



-- 
Carlos Ferreira
Analista de Desenvolvimento
Niterói - RJ - Brasil
LinuxUser  #271002
http://www.carnivorosemdentes.blogger.com.br/
================


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



reply via email to

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