Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Господа помогите модифицировать задачу мониторинга софта freebsd (http://forum.oszone.net/showthread.php?t=175534)

kartez 12-05-2010 23:34 1411974

Господа помогите модифицировать задачу мониторинга софта freebsd
 
мне необходимо модифицировать скрипт,который приведен ниже ..он делает похожую задачу ,только в направлении хардвара(юсб) .работает в постоянном режиме за счет цкла... использует стд команду 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()


Время: 12:54.

Время: 12:54.
© OSzone.net 2001-