2011年2月23日

[自動化網管] Expect on Perl

程式名稱叫作 : reboot.pl

程式是要去遠端重開 voice gw

程式碼如下 :

use Expect;
$ip_address = $ARGV[0];
$mac_address = $ARGV[1];
$password = `/reboot/voice_1port.sh $mac_address | awk '{print \$2}'`; #voice_1port.sh 是算登入密碼的程式

if ($ip_addree eq '' and $mac_address eq '') {
print "Too less arguments!\nRight Syntax : reboot.pl IP_ADRESS MAC_ADDRESS\n";
}
else {
chomp($password);
$cmd = "telnet";
my $exp = Expect->spawn($cmd, "$ip_address")
or die "Cannot spawn $cmd\n";
$exp->expect($timeout, -re=>'Password:');
$exp->send("$password\r\n");
$exp->expect($timeout, -re=>'>');
$exp->send("sys reboot\r\n");
$exp->soft_close();
print "$ip_address rebooting!\n";
}

沒有留言: