CODE
#!/usr/bin/perl -w
use strict;
use warnings;
use Net::SSH::Perl;
my $ssh_to="10.1.1.9";
my @KEYFILE = ("/home/nagios/.ssh/id_dsa.pub");
my $local="10.1.1.5";
my $vip_ip="10.1.1.50:80";
my $remove = "/usr/bin/sudo /sbin/ipvsadm -e -t $vip_ip -r $local -w 0";
my $ssh = Net::SSH::Perl->new($ssh_to, identity_files=>\@KEYFILE);
my ($stdout, $stderr, $exit) = $ssh->cmd($remove);
if ( $exit eq 0) { sleep(300); }
输出
[root@host]# ./mytest.pl
Use of uninitialized value in string eq at ./mytest.pl line 14, <GEN0> line 1
答案 0 :(得分:0)
在perl中,eq用于字符串,==用于数字,只是一个FYI!
您收到错误,因为未定义$ exit。
试试这个测试:
if ( defined( $exit) && ( $exit== 0 ) ) {
sleep( 300 );
}
这将忽略非错误($ exit is undef)并在$ exit = 0时休眠
现在,你为什么试图捕获0号出口,为什么它会在它发生时睡觉?