1
2
3 """Informations sur les cartes ethernet
4 """
5 import commands
6 import os
7
8 from agent import Agent
9 from zephir.monitor.utils import list_to_table
10
12 """Infos réseau
13 """
15 self.name="reseau"
16 self.description="""Informations reseau (configuration des cartes ethernet)"""
17 Agent.__init__(self)
18
19
20 resultat = self._reseau()
21 self.contenu_xml = list_to_table(resultat)
22 self.contenu_html = self.contenu_xml
23
24
25 self.write_xml()
26 self.write_html()
27
29 """Récupère une sortie système
30 """
31 exec_cmd = "/bin/cat /proc/net/dev"
32 s = commands.getoutput(exec_cmd)
33 lignes = s.splitlines()
34
35 lignes = lignes[2:]
36
37 d = {}
38 for ligne in lignes:
39 deb_ligne = ligne.split(':')[0].strip()
40 fin_ligne = ligne.split(':')[1]
41 champs = fin_ligne.split()
42
43 if float(champs[1]) != 0:
44 pourc_in = (float(champs[2]) * 100) / float(champs[1])
45 else:
46 pourc_in = 0
47
48 if float(champs[9]) != 0:
49 pourc_out =(float(champs[10]) * 100) / float(champs[9])
50 else:
51 pourc_out = 0
52
53
54 d[deb_ligne] = [round(float(champs[0])/1024), round(float(champs[8])/1024),round(pourc_in),round(pourc_out)]
55
56 exec_cmd = "/sbin/ifconfig"
57 s = commands.getoutput(exec_cmd)
58 cartes = s.split("\n\n")
59
60 for lignes in cartes:
61 ligne = lignes.splitlines()[0]
62 nom_carte = ligne.split()[0]
63
64 if nom_carte.count(':') == 0:
65 ligne = lignes.splitlines()[1]
66 adresses = ligne.strip()
67 adr_carte = adresses[adresses.index(':')+1:].split()[0]
68
69 d[nom_carte].append(adr_carte)
70
71
72 l = []
73 for device in d.keys():
74 try:
75
76 if (d[device][2] >= 10) or (d[device][3] >= 10):
77 self.set_status("0")
78 l.append({'nom':'<font color="#cc0000">'+device+'</font>','entree (ko)':d[device][0],'entree (erreurs)':d[device][2],'sortie (ko)':d[device][1],'sortie (erreurs)':d[device][3]})
79 else:
80 l.append({'nom':'<font color="#00cc00">'+device+'</font>','entree (ko)':d[device][0],'entree (erreurs)':d[device][2],'sortie (ko)':d[device][1],'sortie (erreurs)':d[device][3]})
81
82 except:
83 pass
84 return l
85
86
87 if __name__ == "__main__":
88 Reseau()
89