Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

мониторинг софта в freebsd (python)

60K
12 мая 2010 года
kortez
1 / / 12.05.2010
мне необходимо модифицировать скрипт,который приведен ниже ..он делает похожую задачу ,только в направлении хардвара(юсб) .работает в постоянном режиме за счет цкла... использует стд команду Unix dmidecode ,которая мониторит хардвар.. есть ли похожая команда для выполнения мониторинга софта? ..необезательно все ето фиксировать в mysql.можно даже записивать ету инфу в лог....листинг привожу..хочется чтобы при отработке скрипта ,выполнялся контроль за установлением софта,в случае сравнения с БД не зарегестрированого ПО,выводится сообщение с характеристиками ПО и заносится инфа в лог


#!/usr/bin/env python
#-*- coding: windows-1251 -*-
import os
import subprocess
all = {}
rez = {}
te = {}
def devic():
data = open('data', 'r')
while 1:
da = data.readline()
all[da] = [da]
if not da: break
dmidecode = subprocess.Popen(['dmidecode -t 4'], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
i = 0
while i<=50:
line = dmidecode.stdout.readline()
if not line in all:
proc = 'not register processor => '+line
rez[proc] = proc
i = i + 1
if not line: break
dmidecode = subprocess.Popen(['dmidecode -t 6'], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
while 1:
line = dmidecode.stdout.readline()
if not line in all:
ram = 'not register ram => '+line
rez[ram] = ram
i = i + 1
if not line: break
dmidecode = subprocess.Popen(['dmidecode -t 10'], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
while 1:
line = dmidecode.stdout.readline()
if not line in all:
media = 'not register media => '+line
rez[media] = media
if not line: break
dmidecode = subprocess.Popen(['dmidecode -t 2'], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
while 1:
line = dmidecode.stdout.readline()
if not line in all:
board = 'not register mother board => '+line
rez[board] = board
if not line: break
lshw = subprocess.Popen(['lshw -C disc'], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
while 1:
line = lshw.stdout.readline()
if not line in all:
disc = 'not register disc => '+line
rez[disc] = disc
if not line: break
log = open('log', 'r')
while 1:
line = log.readline()
te[line] = line
if not line: break
log.close()
log = open('log', 'a')
for x in rez:
# print rez[x]
if rez[x] not in te:
print rez[x]
log.write(rez[x])
log.close()
while 1:
devic()
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог