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 <[EMAIL PROTECTED]> 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 <[EMAIL > PROTECTED]<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 <[EMAIL PROTECTED] <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 <[EMAIL > > > PROTECTED]<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 <[EMAIL > > > > PROTECTED]<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 <[EMAIL > > > > > PROTECTED]<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: [EMAIL > > > > PROTECTED]<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: [EMAIL > > PROTECTED]<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]