📄 rpcchecker.py
字号:
# -*- coding: ISO8859-1 -*-## Copyright 2003, 2004 Norwegian University of Science and Technology## This file is part of Network Administration Visualized (NAV)## NAV is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## NAV is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with NAV; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA### $Id: RpcChecker.py 3315 2005-07-27 12:12:47Z mortenv $# Authors: Magnus Nordseth <magnun@itea.ntnu.no>#import osfrom nav.statemon.abstractChecker import AbstractCheckerfrom nav.statemon.event import Eventclass RpcChecker(AbstractChecker): """ args: requried ex: nfs,nlockmgr """ def __init__(self,service, **kwargs): AbstractChecker.__init__(self, "rpc", service,port=111, **kwargs) # This handler doesn't obey port argument def execute(self): args = self.getArgs() # map service to t=tcp or u=udp mapper = {'nfs':'t', 'status':'t', 'nlockmgr':'u', 'mountd':'t', 'ypserv':'u', 'nfs':'u', 'ypbind':'u' } default = ['nfs', 'nlockmgr', 'mountd', 'status'] required = args.get('required','') if not required: required = default else: required = required.split(',') ip, port = self.getAddress() for service in required: protocol = mapper.get(service, '') if not protocol: return Event.DOWN, "Unknown argument: [%s], can only check %s" % (service, str(mapper.keys())) output = os.popen('/usr/sbin/rpcinfo -%s %s %s 2>/dev/null' % (protocol,ip,service)) output = output.read() if output.find("ready"): continue if outut.find("not available"): return Event.DOWN, "%s not avail" % service if not output: return Event.DOWN,'timeout' return Event.UP, "Ok"def getRequiredArgs(): """ Returns a list of required arguments """ requiredArgs = ['required'] return requiredArgs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -