70 lines
1.9 KiB
Python
Executable file
70 lines
1.9 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*
|
|
|
|
import sys, os
|
|
sys.path.append("/usr/scripts/gestion")
|
|
|
|
import hptools
|
|
|
|
dico = {
|
|
"READY": 1,
|
|
"PrÁt": 1,
|
|
"Pr menus, appuy \x1e": 0,
|
|
"Powersave activÅ": 3,
|
|
"Verification": 2,
|
|
"imprimante": 0,
|
|
"PrÅchauffage": 1,
|
|
"Traitement de la": 0,
|
|
"tÀche du bac 4": 0,
|
|
"tÀche du bac 3": 0,
|
|
"COMMANDER CARTOUCHE": 0,
|
|
"COMMANDER KIT NETTOY": 0,
|
|
"COMMANDER FOURNIT.": 0,
|
|
"CYAN": 0,
|
|
"MAGENTA": 0,
|
|
"JAUNE": 0,
|
|
"NOIR": 0,
|
|
'COMM TAMB. NOIR': 0,
|
|
'PAGES REST.': 0,
|
|
"": 0,
|
|
}
|
|
|
|
def etat():
|
|
""" Renvoie une liste des differents ecrans actuels du display de l'imprimante """
|
|
liste_oid = ["mib-2.43.16.5.1.2.1.1","mib-2.43.16.5.1.2.1.2","mib-2.43.16.5.1.2.1.3","mib-2.43.16.5.1.2.1.4","mib-2.43.16.5.1.2.1.5"]
|
|
total = 0
|
|
try:
|
|
comm = hptools.snmp(host="laserjet.adm.crans.org", version="1", community="public")
|
|
for oid in liste_oid:
|
|
msg = comm.get_string(oid)
|
|
diff = dico.get(msg, None)
|
|
if diff == None:
|
|
for k in dico.keys():
|
|
if k in msg and k != "": diff = dico[k]
|
|
if diff == None:
|
|
diff = 4
|
|
total += diff
|
|
except Exception, err:
|
|
total += 24
|
|
return total
|
|
|
|
if len(sys.argv) > 1:
|
|
arg = sys.argv[1]
|
|
else:
|
|
arg = ''
|
|
|
|
if arg == "config":
|
|
# Ecrit sur la sortie standard la configuration
|
|
print u'host_name laserjet'
|
|
print u"graph_category État"
|
|
print u"graph_args --lower-limit 0 --upper-limit 10"
|
|
print u"graph_title Etat de l'imprimante"
|
|
print u"graph_vlabel nb"
|
|
print u"etat.label Estimation des embrouilles (>3=problemes)"
|
|
print u"etat.warning 4"
|
|
print u"etat.critical 8"
|
|
print u"lpq.label Taille de la file d'attente"
|
|
else:
|
|
# Ecrit les valeurs actuelles sur la sortie standard
|
|
print "etat.value %s" % etat()
|
|
print "lpq.value %d" % (int(os.popen("lpq|wc -l").read())-2)
|