#!/usr/bin/env python #-*- coding:utf-8 -*- import socket,sys from optparse import OptionParser stat_ok=0 stat_warning=1 stat_critical=2 stat_unknown=3 def check_port(address,port): s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.settimeout(3) try: s.connect((address,port)) print "Check ssh port %s OK" %port sys.exit(stat_ok) except Exception,e: print "Check ssh port %s failed:%s" %(port,e) sys.exit(stat_critical) def work(): p=OptionParser() p.add_option("-a","--address",dest="address",default="127.0.0.1",help="address for nagios server",metavar="address") p.add_option("-p","--port",dest="port",type="int",default="22",help="port for nagios server",metavar="port") (options,args)=p.parse_args() result=check_port(options.address,options.port) if __name__ == "__main__": work()
备注:
1、使用socket模块进行类似telnet ip port方式检测;
2、使用OptionParser模块增加可选的选项,默认localhost、22端口;-a跟ip,-p跟端口。