A
download check_flexlm.pl
Language: Perl
LOC: 42
Project Info
pkg-nagios
Server: Debian-SVN
Type: svn
...ugins\tags\1.4.2‑1\contrib\
   check_adptraid.sh
   check_apache.pl
   check_apc_ups.pl
   check_appletalk.pl
   check_arping.pl
   check_asterisk.pl
   check_axis.sh
   check_backup.pl
   check_bgpstate.pl
   check_breeze.pl
   check_cluster.c
   check_cluster2.c
   check_compaq_insight.pl
   check_cpqarray.c
   check_digitemp.pl
   check_disk_snmp.pl
   check_dlswcircuit.pl
   check_dns_random.pl
   check_email_loop.pl
   check_flexlm.pl
   check_hltherm.c
   check_hprsc.pl
   ...th-client-certificate.c
   check_hw.sh
   ...k_ica_master_browser.pl
   ...a_metaframe_pub_apps.pl
   ...program_neigbourhood.pl
   check_inodes-freebsd.pl
   check_inodes.pl
   check_ipxping.c
   check_javaproc.pl
   check_joy.sh
   check_linux_raid.pl
   check_lmmon.pl
   check_log2.pl
   check_lotus.pl
   check_maxchannels.pl
   check_maxwanstate.pl
   check_mem.pl
   check_ms_spooler.pl
   check_mssql.sh
   check_nagios.pl
   check_nagios_db.pl
   check_nagios_db_pg.pl
   check_netapp.pl
   check_nmap.py
   check_ora_table_space.pl
   check_oracle_instance.pl
   check_pcpmetric.py
   check_qmailq.pl
   check_rbl.c
   ...remote_nagios_status.pl
   check_rrd_data.pl
   check_sap.sh
   check_smart.pl
   check_smb.sh
   check_snmp_disk_monitor.pl
   check_snmp_printer.pl
   ...snmp_process_monitor.pl
   check_snmp_procs.pl
   check_sockets.pl
   check_timeout.c
   ...traceroute-pure_perl.pl
   check_traceroute.pl
   check_uptime.c
   check_vcs.pl
   check_wave.pl
   check_wins.pl
   checkciscotemp.pl
   mrtgext.pl
   nagios_sendim.pl
   packet_utils.pm
   restrict.pl
   sched_downtime.pl
   urlize.pl
   utils.py

#!/usr/local/bin/perl
#
# usage: 
#    check_flexlm.pl license_file
#
# Check available flexlm license managers.
# Use lmstat to check the status of the license server
# described by the license file given as argument.
# Check and interpret the output of lmstat
# and create returncodes and output.
#
# Contrary to the nagios concept, this script takes
# a file, not a hostname as an argument and returns
# the status of hosts and services described in that
# file. Use these hosts.cfg entries as an example
#
#host[anchor]=any host will do;some.address.com;;check-host-alive;3;120;24x7;1;1;1;
#service[anchor]=yodel;24x7;3;5;5;unix-admin;60;24x7;1;1;1;;check_flexlm!/opt/lic/licfiles/yodel_lic
#service[anchor]=yeehaw;24x7;3;5;5;unix-admin;60;24x7;1;1;1;;check_flexlm!/opt/lic/licfiles/yeehaw_lic
#command[check_flexlm]=/some/path/libexec/check_flexlm.pl $ARG1$
#
# Notes:
# - you need the lmstat utility which comes with flexlm.
# - set the correct path in the variable $lmstat.
#
# initial version: 9-10-99 Ernst-Dieter Martin edmt@infineon.com
# current status: looks like working
#
# Copyright Notice: Do as you please, credit me, but don't blame me
#

# Just in case of problems, let's not hang Nagios
$SIG{'ALRM'} = sub {
	print "No Answer from Client\n";
	exit 2;
};
alarm(20);

$lmstat = "/opt/lic/sw/cadadm/default/bin/lmstat";

$licfile = shift;

#print "$licfile \n";

open CMD,"$lmstat -c $licfile |";

$serverup = 0;

while ( <CMD> ) {
  if ( /^License server status: [0-9]*@([-0-9a-zA-Z_]*),[0-9]*@([-0-9a-zA-Z_]*),[0-9]*@([-0-9a-zA-Z_]*)/ ) {
	$ls1 = $1;
	$ls2 = $2;
	$ls3 = $3;
	$lf1 = $lf2 = $lf3 = 0;
	$servers = 3;
  } elsif ( /^License server status: [0-9]*@([-0-9a-zA-Z_]*)/ ) {
	$ls1 = $1;
	$ls2 = $ls3 = "";
	$lf1 = $lf2 = $lf3 = 0;
	$servers = 1;
  } elsif ( / *$ls1: license server UP/ ) {
	print "$ls1 UP, ";
	$lf1 = 1
  } elsif ( / *$ls2: license server UP/ ) {
	print "$ls2 UP, ";
	$lf2 = 1
  } elsif ( / *$ls3: license server UP/ ) {
	print "$ls3 UP, ";
	$lf3 = 1
  } elsif ( / *([^:]*: UP .*)/ ) {
	print " license server for $1\n";
	$serverup = 1;
  }
}
if ( $serverup == 0 ) {
    print " license server not running\n";
    exit 2;	
}

exit 0 if ( $servers == $lf1 + $lf2 + $lf3 );
exit 1 if ( $servers == 3 && $lf1 + $lf2 + $lf3 == 2 );
exit 2;

About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us