#!/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跟端口。