2015-12-18 5 views
1

Пожалуйста, помогите мне разобрать файл конфигурации Nagios через скрипт Python. Я получил массив с именами хостов, и от этого нужно разобрать файл и получить их членов. Как я могу это сделать?Анализ файла с помощью 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

да, это. Это может помочь. Но проблема в следующем - у некоторых хос-групп не было никаких членов, поэтому, как я знаю, этот код будет разбит, нет? –

+0

Этот код не будет сбой, но результат будет ложным. Это всего лишь пример ... Вам нужно адаптировать его для ваших конкретных потребностей. – djangoliv

Смежные вопросы