LINUX.ORG.RU

установка/удаление приложений. мониторинг

 , , ,


0

1

всем привет, такая задача..необходимо отслеживать в реальном времени установку/удаление приложений, с выводом названия приложения и путь установки, как грамотно это сделать на c++, на линуксе?

В винде хватало мониторить изменение веток реестра, а как поступить тут?

также на пк идет отправка всех логов на сервер, с помощью rsyslog, но там что-то полезной информации мало.

точный код не нужен, хватит и советов, спасибо.

Что значит «установка приложений»? Если я скачал с vasyan.narod.ru скрипт enlarge_penis.sh и положил его себе в $HOME/bin, я поставил приложение для увеличения пениса, или нет?

DELIRIUM ☆☆☆☆☆ ()

Если у того, кого ты мониторишь, есть права рута, то мониторить что-то бесполезно - твой монитор уберут. Если нет, то оставь только одну ручку для установки приложений и мониторь её.

Laz ★★★★ ()

Всем спасибо за ответы. Думаю, как и подсказали, делать с помощью парсинга /var/log/dpkg.log.

Появилось еще ряд вопросов, также хорошо бы сделать мониторинг установки/удаления, когда программа выключена, ну т.е включается программа и проверяет что изменилось, с момента, как её выключили.

Я так понимаю нужно делать заранее список всех установленных программ, а потом его сверять с текущим, т.е, если просканировать все файлы dpkg.log, dpkg.log1 и т.д, то можно собрать весь список? Как быть, если какие-то из них удалены.

Получается, с точки зрения C++, тут вся работа основана на парсинге файлов, т.е нет никаких других методов получения всего этого?

И вообще использовать терминал в своем проекте..это лоховство?, т.е, например получать последнюю строку файла с помощью терминала и парсить его, а не читать файл с конца на C++.

follownow ()
Ответ на: комментарий от anonymous

база dpkg, это файл /var/lib/dpkg/status?

а как его грамотней парсить, прогонять средствами c++, или отправлять команду в терминал, типа такой

dpkg-query --show -f '${source:Package} ${source:Version}\n' | sort -u
и потом парсить этот результат?

follownow ()