scripts/munin/laserjet__etat
Vincent Le Gallic c039058708 Enregistrement des droits d'exécution. Aucune vraie modif.
Darcs n'enregistrait pas les permissions des fichiers.
2013-01-31 05:36:25 +01:00

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)