20. GetOptions(
'H=s' => my $HOST,
'p=s' => my $PORT,
);
my $sock = IO::Socket::INET->new(
PeerAddr => $HOST, PeerPort => $PORT
);
if ( !$sock ) {
print "couldnot connect to $HOST:$PORT: $!n";
exit(1);
}
$sock->syswrite("versionrn");
$sock->sysread( my $result, 16 );
if ( $result =~ m!^VERSION! ) {
exit(0);
}
print "couldnot get VERSION from $HOST:$PORTn";
exit(1);
21. $ cronlog -- ./version.pl -H localhost -p 11211
srv1 starting: perl version.pl -H localhost -p 11211
couldnot get VERSION from localhost:11211
command exited with code:1
22.
23. GetOptions(
'H=s' => my $HOST,
'p=s' => my $PORT,
);
my $sock = IO::Socket::INET->new(
PeerAddr => $HOST, PeerPort => $PORT
);
if ( !$sock ) {
print "couldnot connect to $HOST:$PORT: $!n";
exit(3); ##UNKNOWN
}
$sock->syswrite("versionrn");
$sock->sysread( my $result, 16 );
if ( $result =~ m!^VERSION! ) {
exit(0); ##OK
}
print "couldnot get VERSION from $HOST:$PORTn";
exit(1); ##CLITICAL
24. GetOptions( $sock->syswrite("stats settingsrn");
'H=s' => my $HOST,
$sock->sysread(my $r_setting, 8192 );
'p=s' => my $PORT,
my %setting;
‘w=i' => my $WARN,
foreach my $line ( split /r?n/, $r_setting )
'c=i' => my $CRITICAL,
{
);
if ( $line =~ /^STATs([^ ]+)s(.+)$/ ) {
$setting{$1} = $2;
my $sock = IO::Socket::INET->new(
}
PeerAddr => $HOST, PeerPort => $PORT
}
);
my $rate = $stats{curr_connections}
$sock->syswrite("statsrn"); / $setting{maxconns} * 100;
$sock->sysread(my $r_stats, 8192 ); if ( $rate >= $CRITICAL ) {
my %stats; printf "conn/max = %d%%n",$rate;
foreach my $line ( split /r?n/, $r_stats ) { exit(2); #CRTICAL
if ( $line =~ /^STATs([^ ]+)s(.+)$/ ) { }
$stats{$1} = $2; elsif ( $rate >=$WARN ) {
} printf "conn/max = %d%%n", $rate;
} exit(1); #WARNING
}
exit(0); #OK
25. stats stats settings
STAT pid 4695 STAT maxbytes 67108864
STAT uptime 84017 STAT maxconns 300000
STAT time 1285600226 STAT tcpport 11211
STAT version 1.4.2 STAT udpport 11211
STAT pointer_size 64 STAT inter NULL
STAT rusage_user 0.000000 STAT verbosity 0
STAT rusage_system 0.020000 STAT oldest 0
STAT curr_connections 10 STAT evictions on
STAT total_connections 16 STAT domain_socket NULL
STAT cmd_get 0 STAT umask 700
... STAT growth_factor 1.25
STAT bytes 0 STAT chunk_size 48
STAT curr_items 0 STAT num_threads 4
STAT total_items 0 ..
STAT evictions 0 STAT item_size_max 1048576
END END