1,需求:由于在服务器内检查端口是否存活,有一定的机率遇到僵尸进程
需要在外部telnet端口检查,所以写了这个脚本
2,暂时,只能用IP地址而不是域名(下一版本改进)。
3,代码如下:
#!/bin/bash evn python # coding: utf-8 import os,socket,sys def isValid(vIP,vPort): if not vPort.isdigit(): return False Split=vIP.split('.') for i in Split: if not i.isdigit(): return False return True def checkTCPPort(vIP,vPort): if not isValid(vIP,vPort): return False else: isOk=True S = socket.socket(socket.AF_INET,socket.SOCK_STREAM) S.settimeout(2) try: S.connect((vIP,int(vPort))) isOK = True except: isOK = False ErrorType,ErrorValue,ErrorTB = sys.exc_info() finally: S.close() return isOK if __name__ == '__main__': if len(sys.argv) < 3: print "Usage:",sys.argv[0],"IP Port" else: tcpResult=checkTCPPort(sys.argv[1],sys.argv[2]) if tcpResult: print "OK" else: os.system('python2 ~/script/mail_send.py xrzxq@126.com "ylcf ss-server\'s port "'+ sys.argv[2]+ '" 连不上 "' )
发表评论