Package zephir :: Package monitor :: Package agent :: Module samba
[frames] | no frames]

Source Code for Module zephir.monitor.agent.samba

 1  # -*- coding: UTF-8 -*- 
 2  """Etat du serveur de fichier 
 3  """ 
 4   
 5  import os,commands 
 6  from agent import Agent 
 7   
8 -class SambaAgent(Agent):
9 """Etat du serveur de fichier 10 """
11 - def __init__(self):
12 self.name = "samba" 13 self.description="""Partage de fichier Samba""" 14 Agent.__init__(self) 15 cmd = "net status sessions | grep \"(\" |wc -l" 16 nb = commands.getoutput(cmd).lstrip() 17 virus = self._virus_log() 18 # traitements (à restructurer si possible arf arf) 19 self.contenu_xml = self._dump_xml(nb,virus) 20 self.contenu_html= self._dump_html(nb,virus) 21 # écriture dans les fichiers 22 self.write_html() 23 self.write_xml()
24
25 - def _dump_xml(self,nb,virus):
26 """sortie en xml 27 """ 28 29 UPT_DATA = """<variable name="nbconnectes" value="%s"/> 30 <variable name="lastvirus" value="%s"/> 31 """ 32 33 return UPT_DATA % (nb,virus)
34
35 - def _dump_html(self,nb,virus):
36 """sortie en html 37 """ 38 UPT_HTM = """<table><tr><td> 39 Nombres d'utilisateurs connectés : %s 40 </td></tr><tr><td> 41 Dernier virus détecté : %s 42 </td></tr></table> 43 """ 44 45 return UPT_HTM % (nb,virus)
46 47
48 - def _virus_log(self):
49 """ traitement des virus 50 loggés dans syslog avec samba-vscan 51 """ 52 fichier = "/var/log/syslog" 53 try : 54 fp = open(fichier,'r') 55 except: 56 return("Erreur de lecture") 57 lignes = fp.readlines() 58 lignes.reverse() 59 for ligne in lignes: 60 if ligne.find("infected with virus") != -1 : 61 ## mois (ang) et jour (num) 62 date = ligne[4:6]+" "+ligne[0:3] 63 ligne = ligne[ligne.find("'")+1:] 64 next = ligne.find("'") 65 ## fichier 66 fichier = ligne[0:next] 67 ligne = ligne[next+23:] 68 next = ligne.find("'") 69 ## virus 70 virus = ligne[0:next] 71 ## client 72 client = ligne[next+12:-2] 73 return("<font color=red>"+virus+"</font> sur le client"+" "+client+" ("+date+")") 74 75 return("Aucun")
76 77 if __name__ == "__main__": 78 SambaAgent() 79