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