2012-06-05 7 views
0

Mes besoins vérifient le numéro de processus.Comment compter le nombre de chaînes dans une liste

import sys 
import os 
import commands 

ip = sys.argv[5] 
val = sys.argv[1] 
oid = "HOST-RESOURCES-MIB::hrSWRunName" 
cmd = "snmpwalk -v 2c -c public %s %s" % (ip,oid) 
(r_c,r_e) = commands.getstatusoutput(cmd) 
if r_c != 0: 
    print "C - snmpwalk is Error." 
else: 
    for i in r_e.split('\n'): 
    a = i.split(':')[-1].strip(' "') 
    print a 

Résultat:

conhost.exe 
conhost.exe 
conhost.exe 
conhost.exe 
fdhost.exe 
cmd.exe 
fdhost.exe 

J'espère que le résultat est. Je ne sais pas comment l'atteindre.

if sys.argv[1] <5:#count(conhost.exe) 
    print "critical -" 
else: 
    print "OK - " 

Comment les statistiques de mes résultats? conhost.exe 4 conhost.exe 1 conhost.exe 1

+0

Je suis désolé, mais je ne comprends pas ce que vous demandez. –

+0

Pouvez-vous préciser la question plus précisément? Ce n'est pas clair ce que vous souhaitez demander. – damned

+0

Essayez-vous de compter le nombre de fois que 'conhost.exe' se produit dans la sortie de' snmpwalk' et d'imprimer "critical -" si le nombre est inférieur à 5? – jhonkola

Répondre

1
# replace here 
else: 
    processes = r_e.split('\n') 
    programs = 0 
    for program in processes: 
     programFile = program.split(':')[-1].strip(' "') 
     # the first argument you pass to the program should be conhost.exe 
     if programFile == sys.argv[1]: 
      programs = programs + 1 
    if programs < 5 :#count(conhost.exe) 
     print "critical: running less than 5 times:", sys.argv[1] 
    else: 
     print "OK" 

deuxième version

# replace here 
else: 
    processes = r_e.split('\n') 
    processes = map(lambda program: program.split(':')[-1].strip(' "'), processes) 
    if processes.count(sys.argv[1]) < 5 :#count(conhost.exe) 
     print "critical: running less than 5 times:", sys.argv[1] 
    else: 
     print "OK" 
+0

Peut être atteint. Merci – ANSIC

+0

Veuillez ne pas oublier d'accepter les réponses que vous trouvez utiles. Acceptez-les en cliquant sur la flèche grise située sous la zone de réponse. –

Questions connexes