2015-12-18 160 views
1

請幫助我通過Python腳本解析Nagios配置文件。 我得到了與主機名的陣列,並從這個需要解析文件並獲得他們的成員。我怎麼能做到這一點?通過Python解析文件

有我的代碼:

import os 
hostgroups=os.popen('grep hostgroup_name /var/log/nagios/objects.cache | cut -f3').read().split('\n') 
for i in hostgroups[:-1]: 
    print i 

再次文件如何解析或做什麼才能獲得成員。 示例見下:

define hostgroup { 
     hostgroup_name test 
     alias test 
     members server1,server2 
     } 

謝謝。

回答

1

也許你應該分析與蟒蛇的文件,而不是的grep:

例如:

with open("/var/log/nagios/objects.cache") as nagiosFile: 
    hostgroups = {} 
    hostgroup_name = None 
    for line in nagiosFile.readlines(): 
     if "hostgroup_name" in line: 
      hostgroup_name = line.split()[-1] 
     if "members" in line: 
      for members in line.split(): 
       hostgroups[hostgroup_name] = members.split(",") 
    print hostgroups 
+0

是啊,這個。它可以幫助。但在接下來的問題 - 一些hosgroups沒有任何成員,所以我怎麼知道,這段代碼將崩潰,不是? –

+0

這段代碼不會崩潰,但結果將是錯誤的。這只是一個例子......您需要根據您的特定需求來調整它。 – djangoliv