Thiago, o que estou te dizendo é que com cliente telnet comum você não conecta no mainframe, pelo menos eu não consegui. Por isso que fui atrás de outro cliente. Acho que o Eden sabe explicar o motivo. Em 09/03/2013 16:09, "thiago glauco sanchez" <thiagogla...@ticursos.net> escreveu:
> A interação humana no expect é usada por pattern match: > > $exp->expect($timeout, > [ timeout => \&report_timeout ], > [ qr/pattern/ => \&handle_pattern], > ); > > Ex: > #efetua login > my @parameters = ('host') > Expect->spawn('telenet' , @parameters) > $exp->expect($timeout, > [ qr/username/ => sub { my $self = shift; > $self->send('usuario\n'); > return 'exp_continue'}], > [qr/password/ => sub { my $self = shift; > $self->send('password\n'); > return 'exp_continue'} ], > 'bash$'); > > > #agora você está no servidor e pode enviar comandos: > $exp->send("comando1\n") > > #e definir ações conforme padrões de texto da saída do comando. > $exp->expect($timeout, > [ qr/pattern1/ => sub { my $self = shift; > ...ação 1 > ...isso é uma sub. > ..você pode fazer qualquer coisa aqui}], > [qr/pattern2/ => sub { my $self = shift; > ...ação 2} ], > 'bash$'); > #e fazer o mesmo para n comandos. > $exp->send("comando2\n") > > No Net::Telnet você pode verificar o array de saída para decidir a ação > a ser tomada: > > #conecta > my $telnet = Net::Telnet->new( Host => "Servidor", > Prompt => '/fulano#/'); > $telnet->login('usuario','senha'); > > #verifica se o diretório dir1 existe e muda o pwd > #para dir1. Se dir1 não existir sera criado' > my @saida = $telnet->cmd('ls -a'); > if ('dir1' ~~ @saida) { > $telnet->cmd( 'cd dir1/');} > else { > $telnet->cmd( 'mkdir dir1' ); > $telnet->cmd( 'cd dir1/' ); } > > espero ter ajudado. > > abraços. > thiago glauco > > > On Sat, 2013-03-09 at 13:16 -0400, Marcio - Google wrote: > > Sim, mais a conexão e o ponto menos relevante nesse caso. O problema é > > simular a interação e tratar "mapa de caracteres". > > Na verdade, nos primeiros testes que fiz, tentei conectar com o > > cliente de telnet padrão, e não funciona. Tem que ser um cliente > > próprio, que no caso eu usei o s3270. > > > > Em 09/03/2013 13:09, "thiago glauco sanchez" > > <thiagogla...@ticursos.net> escreveu: > > Humm...Se é para fazer telnet eu usaria o Net::Telnet em vez > > do Expect. > > Algumas vezes eu utilizei o Expect e ele é um pouco mais > > demorado por > > que utiliza o processo externo do telnet. No Net::Telnet, é > > criado o > > cliente dentro do processo de sua aplicação. Mais rápido e > > seguro. > > > > On Thu, 2013-03-07 at 14:33 -0300, Frederico Melo wrote: > > > Sr(a)s., Obrigado pela disponibilidade de alguns com os > > quais > > > conversei *em paralelo* e me orientaram a postar aqui... > > Segue abaixo > > > um resumo da minha dor de cabeça: > > > > > > Chamo-me Frederico, tenho alguns conhecimentos em PHP, Perl, > > MySQL e > > > Linux. Aqui na empresa, trabalho com desenvolvimento e até o > > momento > > > não tive problemas mas, surgiu um projeto que estou > > responsável onde > > > será necessário coletar uma série de informações em um > > mainframe IBM, > > > processá-las e armazená-las em MySQL. Apresentarei os dados > > em HTML. > > > Então, gostaria muito de uma orientação para: > > > > > > 1 - com um servidor Linux sem interface gráfica, acessar o > > servidor > > > IBM através de telnet na porta 23; > > > 2 - capturar alguns dados nesse IBM e armazená-los em MySQL > > > 3 - após capturar os dados, devo escrever alguns comandos no > > IBM ou > > > seja, o programa deve ser de mão-dupla (lê e escrever no IBM > > > utilizando usuário conhecido nesse ambiente); > > > 4 - toda interface existente para o IBM é feita por > > aplicativos no > > > Windows (Winsock 3270 Telnet, QWS3270) > > > 5 - tenho instalado no servidor Linux expect, php, perl, > > mysql > > > > > > Penso em desenvolver algo com perl, expect, s3270 etc mas, > > > sinceramente não sei qual a melhor solução. > > > Tenho facilidade em aprender sozinho mas, preciso de um > > exemplo > > > inicial onde eu possa testar e verificar o resultado do que > > está sendo > > > feito. À partir daí, customizo e tento implementar. > > > > > > No momento, estou CEGO caminhando em um terreno novo, sem > > saber muito > > > bem por onde começar... > > > Não tenho muita familiaridade com o Expect, nem com o s3270. > > Socorro e > > > desculpem-me pela minha ignorância! > > > > > > Aprecio muito qualquer ajuda para eu começar. > > > Obrigado! > > > > > > Frederico > > > =begin disclaimer > > > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > > > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > > > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > > > =end disclaimer > > > > > > =begin disclaimer > > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > > =end disclaimer > > =begin disclaimer > > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > > =end disclaimer > > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer