X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=zabbix%2Fext_boot_state;fp=zabbix%2Fext_boot_state;h=d72e12414ca3895367e4ad0a7168fd1372e286d0;hb=6ed9d7d32f53f2346c4d04e1251628d5ed30af3f;hp=0000000000000000000000000000000000000000;hpb=9ea6c9bfc825a684654837886af4291780673eb7;p=monitor.git diff --git a/zabbix/ext_boot_state b/zabbix/ext_boot_state new file mode 100755 index 0000000..d72e124 --- /dev/null +++ b/zabbix/ext_boot_state @@ -0,0 +1,54 @@ +#!/usr/bin/python + +import os +import sys +import time + +def port_status(str): + fields = str.split('/') + return fields[1] + +def get_state_from_port(host): + #nmap = os.popen("nmap -oG - -P0 -p 22,80,806 %s 2>/dev/null | tr ':' '\n' | grep -E 'tcp|Timeout'" % host, 'r') + nmap = os.popen("nmap -oG - -p 22,80,806 %s 2>/dev/null | tr ':' '\n' | grep -E 'tcp|Timeout'" % host, 'r') + line = nmap.readline() + ##### + ##### 22 80 806 + ##### 0 0 0 - down + ##### 1 0 0 - dbg + ##### 0 1 0 - unknown + ##### 1 1 0 - unknown + ##### 0 0 1 - firewall + ##### 1 0 1 - error or firewall + ##### 0 1 1 - firewall + ##### 1 1 1 - boot + ##### + ##### boot - 4 + ##### debug - 3 + ##### firewall - 2 + ##### unknown - 1 + ##### down - 0 + ##### + mapping = {'down' : 0, + 'unknown' : 1, + 'firewall' : 2, + 'debug' : 3, + 'boot' : 4, + } + #print "--%s--" % line + #print "--%s--" % type(line) + if line.strip() == "" or line.strip() == "Timeout": + return mapping["down"] + (p22, p80, p806) = line.split() + if port_status(p22) == "open" and \ + port_status(p80) == "open" and \ + port_status(p806) == "open": + return mapping["boot"] + elif port_status(p22) == "open" and port_status(p806) != "open": + return mapping["debug"] + elif port_status(p806) == "open": + return mapping["firewall"] + else: + return mapping["unknown"] + +print get_state_from_port(sys.argv[1])