注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

Perl Expect的两个例子  

2010-11-19 23:14:16|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
sudo cpan  install Expect

之后,man expect就可以看到帮助文档。
这里两个小例子:
----------------------------------------------------------
#!/usr/bin/perl

use Expect;
use strict;

$Expect::Log_Stdout = 1;
#$Expect::Exp_Internal = 1;

#$exp = new Expect;
# $exp->spawn("telnet", ())
#           or die "Cannot spawn $cmd $!\n";
# $exp->raw_pty(1);
# $exp->log_stdout(1);   #设置了这个才可见,改为0 不可见
# $exp->log_user(1);
# $exp->log_file("/tmp/output.log", "w");
#$exp->expect($timeout,"telnet");

my $cmd  = "";
my $timeout = 30;
my $exp ;

$cmd = '/bin/bash';

#注意:不能 Expect->spawn($cmd,“”)   这样用,用Expect->spawn($cmd) 不传参数也可以
$exp = Expect->spawn($cmd,()) or die "Can not spawn $cmd\n";
#$exp->log_stdout(1);
$exp->expect($timeout, "\$");

if (0 != system ("lsmod |grep cisco_ipsec" ))
{
#`/etc/init.d/vpnclient_init status`

$cmd = "sudo /etc/init.d/vpnclient_init start\n" ;
$exp->send($cmd);
$exp->expect($timeout, "-re" ,'password for widebright:');
$exp->send("password here\n");
$exp->expect($timeout, "-re" ,'Done');

}

$exp->send ( 'vpnclient connect  mypcf  user myusername pwd mypassword' . "\n");

$exp->expect($timeout, "Local LAN Access is disabled");
$exp->interact();
#$exp->soft_close();

-----------------------------------------------------------------------------------------


#!/usr/bin/perl

use Expect;
use strict;

#$Expect::Log_Stdout = 1;

my $frame ="" ;
my $cmd  = "";
my $timeout = 10;
my $exp ;

while (1) {
print "输入frame名字:";
$frame=<STDIN>;;
chomp($frame);
last if ($frame);
}


$cmd = 'ssh -e \'?\' root@' . $frame . '.mydomain.com';
print "$cmd\n";

$exp = Expect->spawn($cmd) or die "Can not spawn $cmd\n";
#$exp->log_stdout(1);

$exp->expect($timeout,
[ "password:" => sub { my $exp = shift;
$exp->send("password here\n");
} ],
[ "Are you sure you want to continue.*yes\/no" => sub { my $exp = shift;
$exp->send("yes\n");
exp_continue; } ],

);

#$exp->expect($timeout, "password");

$exp->interact();
#$exp->soft_close();
  评论这张
 
阅读(726)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017