LINUX.ORG.RU
ФорумAdmin

скрипт мониторинга софта freebsd


0

0

Уважаемые господа!!!!требуется Ваша помощь в написании скрипта(bash/python),который бы следил за установленым софтом в freebsd(при удалении \ инсталяции компонента вся инфа должна логироватся в БД mysql).Надеюсь на Вашу помощь)))

Тебе нужно сделать складывание листинга /var/db/pkg/ в mysql или конвертор /var/db/pkg/pkgdb.db из BerkeleyDB в mysql?

alex-w ★★★★★ ()

И да, perl не котируется?

alex-w ★★★★★ ()
Ответ на: комментарий от alex-w

Ответ для alex-w

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

kortez ()

Такая система там и так уже есть, разве что использует не mysql, но думаю поправимо.

madcore ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.