Package zephir :: Package monitor :: Package agent :: Module montages
[hide private]
[frames] | no frames]

Source Code for Module zephir.monitor.agent.montages

 1  # -*- coding: UTF-8 -*- 
 2  """Etat des montages 
 3  """ 
 4   
 5  import os,commands 
 6  from zephir.monitor.utils import list2list_to_table 
 7  from agent import Agent 
 8   
9 -class MontagesAgent(Agent):
10 """Bilan de l'etat des montages 11 """
12 - def __init__(self):
13 self.name = "montages" 14 self.description="""Etat des montages""" 15 Agent.__init__(self) 16 # traitements 17 brut = self._montages() 18 self.contenu_xml = list2list_to_table(brut) 19 self.contenu_html = self.contenu_xml 20 # écriture dans les fichiers 21 self.write_html() 22 self.write_xml()
23
24 - def _montages(self):
25 """Appel et traitement des commandes 26 """ 27 # commandes utilisées 28 cmd_montages = "df -kP" 29 cmd_info = "/bin/cat /proc/mounts" 30 # exécution des commandes 31 mnt = commands.getoutput(cmd_montages) 32 inf = commands.getoutput(cmd_info) 33 # récupération des lignes 34 lmnt = mnt.splitlines() 35 linf = inf.splitlines() 36 37 # traitement de info 38 d_type = {} 39 for lin in linf : 40 d_type[lin.split()[0]]=lin.split()[2] 41 42 # traitement mnt 43 lmnt=lmnt[1:] 44 liste = [['montage','partition','type','utilisation','libre (mo)','utilisé (mo)','taille (mo)']] 45 for lmn in lmnt : 46 l = [] 47 l.append(lmn.split()[5]) # montage 48 l.append(lmn.split()[0]) # partition 49 try : 50 l.append(d_type[lmn.split()[0]]) # jointure sur le type 51 except: 52 l.append("?") 53 l.append(lmn.split()[4]) # utilisation (%) 54 l.append( int(lmn.split()[3])/1024 ) # dispo 55 l.append( int(lmn.split()[2])/1024 ) # utilisé 56 l.append( int(lmn.split()[1])/1024 ) # taille 57 liste.append(l) 58 # Alerte si une partition est remplie à plus de XX (%) 59 if int(lmn.split()[4][:-1]) > 95: 60 # on ignore les cdroms pour les alertes 61 if lmn.count('iso9660') == 0: 62 self.set_status("0") 63 64 return liste
65 66 if __name__ == "__main__": 67 MontagesAgent() 68