[wiki/{bornes.py,status.py}] Mise a jour pour les nouvelles bornes
Bon, il y a probablement des couacs, et j'ai peut-etre casse d'autres trucs, mais au moins status.xml est bon ... darcs-hash:20090922192037-ddb99-ab3956ec60f23429c5f854828c66e8bb40990513.gz
This commit is contained in:
parent
34787874db
commit
20a4dfd6eb
2 changed files with 71 additions and 6 deletions
|
@ -34,11 +34,78 @@ def bornes():
|
|||
|
||||
def ssh_exec(host, cmd):
|
||||
"""Execute une commande en ssh sur une machine et renvoie le résultat"""
|
||||
(stdin, stdout, stderr) = os.popen3("ssh -T -x -o BatchMode=yes -o ConnectTimeout=5 %(host)s exec %(cmd)s" % locals())
|
||||
(stdin, stdout, stderr) = os.popen3("ssh -T -x -o BatchMode=yes -o ConnectTimeout=5 -o StrictHostKeyChecking=no %(host)s exec %(cmd)s" % locals())
|
||||
stdin.close()
|
||||
stderr.close()
|
||||
return stdout
|
||||
|
||||
def bornes_canal():
|
||||
names = bornes()
|
||||
outputs = {}
|
||||
for name in names:
|
||||
outputs[name] = ssh_exec(name+".wifi", 'iwlist wl0 channel')
|
||||
|
||||
count = 0
|
||||
total = len(names)
|
||||
while count < total:
|
||||
try: os.wait()
|
||||
except OSError: break
|
||||
|
||||
# On lit tout les résultats:
|
||||
results = {}
|
||||
for name, output in outputs.iteritems():
|
||||
curoutput = output.read().strip()
|
||||
if 'Current Channel' in curoutput:
|
||||
results[name] = curoutput.split(':')[-1].strip()
|
||||
else:
|
||||
results[name] = '0'
|
||||
output.close()
|
||||
return results
|
||||
|
||||
|
||||
def bornes_clients():
|
||||
names = bornes()
|
||||
outputs = {}
|
||||
for name in names:
|
||||
outputs[name] = ssh_exec(name+".wifi", 'brctl showmacs br-crans')
|
||||
|
||||
count = 0
|
||||
total = len(names)
|
||||
while count < total:
|
||||
try: os.wait()
|
||||
except OSError: break
|
||||
|
||||
# On lit tout les résultats:
|
||||
results = {}
|
||||
for name, output in outputs.iteritems():
|
||||
macs = map(lambda x: x.split(), output.readlines())
|
||||
results[name] = str(len([x for x in macs if x[0] == '2' and x[2] != 'yes']))
|
||||
output.close()
|
||||
return results
|
||||
|
||||
def bornes_uptime():
|
||||
names = bornes()
|
||||
outputs = {}
|
||||
for name in names:
|
||||
outputs[name] = ssh_exec(name+".wifi", 'cat /proc/uptime')
|
||||
|
||||
count = 0
|
||||
total = len(names)
|
||||
while count < total:
|
||||
try: os.wait()
|
||||
except OSError: break
|
||||
|
||||
# On lit tout les résultats:
|
||||
results = {}
|
||||
for name, output in outputs.iteritems():
|
||||
uptime = output.read().strip()
|
||||
if uptime:
|
||||
results[name] = str(float(uptime.split()[1]) / (24*3600))
|
||||
else:
|
||||
results[name] = '0'
|
||||
output.close()
|
||||
return results
|
||||
|
||||
def munin(config, cmd, process=(lambda x: x)):
|
||||
"""plugin munin"""
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue