|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Господа помогите модифицировать задачу мониторинга софта freebsd |
|
PowerShell - Господа помогите модифицировать задачу мониторинга софта freebsd
|
Новый участник Сообщения: 1 |
Профиль | Отправить PM | Цитировать мне необходимо модифицировать скрипт,который приведен ниже ..он делает похожую задачу ,только в направлении хардвара(юсб) .работает в постоянном режиме за счет цкла... использует стд команду 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() |
|
Отправлено: 23:34, 12-05-2010 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Помогите решить задачу | Urann | Программирование и базы данных | 11 | 14-05-2013 11:44 | |
C/C++ - [решено] Помогите решить задачу по С++ | Spl1t | Программирование и базы данных | 301 | 21-12-2011 23:20 | |
C/C++ - Помогите решить задачу | zdughi | Программирование и базы данных | 1 | 01-05-2009 06:03 | |
помогите решить задачу | snikers | Программирование и базы данных | 2 | 27-08-2004 01:57 | |
помогите решить задачу | Guest | Программирование и базы данных | 2 | 21-05-2004 11:23 |
|