Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 3, 2009 22:27:32

hendrix
От:
Зарегистрирован: 2008-11-08
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Монитор изменения файлов

Описание
Программа позволяет отслеживать изменения выбранного набора файлов за счет вычисления и сравнения md5.
Получить из svn

svn co svn://svn.free-node.ru/utils/ckmon
Настройка:
Создать конфигурационный файл вида (в репозитории лежит этот пример ckmon.rules):
# Файл конфигурации для монитора изменения файлов

# Параметр store указывает файл в котором стоит сохранить базу изменений файлов
store ./ckmon.db # как бы тут тоже можно писать камменты

# Параметр log указывает файл, в который программа положит историю изменений в файлах
log ./ckmon_log

# Включение директории для мониторинга
# Допустимы следующие директивы:
# Включить путь: include <path>
# Игнорировать путь: ignore <path>
# Все пути, включая путь к директории для мониторинга могут содержать регулярное выражение
# Приоритетным считается вырожение ignore
<directory /home/Times/projects/invader>
include *.py
ignore robots.txt
ignore settings.py
include invander.db
</directory>

#<directory /usr/home/hendrix/forum.ksd-nsk.ru/>
# include *.php
# ignore robots.txt
# ignore temp.php
# include .htaccess
#</directory>
Использование
Достаточно просто с необходимой периодичностью выполнять:
python ckmon.py ckmon.rules
Изменения будут сохранятся в лог-файл (параметр log), а текущее состояние находится в файле (параметр store).



Офлайн

#2 Окт. 4, 2009 13:48:43

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Монитор изменения файлов

Кросплатформенная штука?
Для Unix/Linux есть http://www.python.org/doc/2.6/library/logging.html#watchedfilehandler



Офлайн

#3 Окт. 4, 2009 17:26:23

hendrix
От:
Зарегистрирован: 2008-11-08
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Монитор изменения файлов

Да, это маленькое кросплатформенное приложение.
WatchedFileHandler (класс на который ведет ссылка) - это штука для несколько иных целей.
Мое приложение просто создает список файлов обозначенных в конфиге, вычисляет для каждого md5 и вместе с путем заносит в базу. База это просто текстовый файлик, напирмер:

%%
revision: 2009-09-30 02:13:20.071244
d41d8cd98f00b204e9800998ecf8427e /home/Times/projects/invader/index.php
044a87e102dcffcc971b9ffba54f2b27 /home/Times/projects/invader/robots.txt
При последующем запуске приложение опять проходит по всем файлам и подсчитывает md5, если md5 не совпадают то база обновляется а факт изменения(или появления/удаления файла) протоколируется в лог файле. К примеру:
%%
revision: 2009-09-30 02:13:17.068243
del d41d8cd98f00b204e9800998ecf8427e /home/Times/projects/invader/index.php
new d41d8cd98f00b204e9800998ecf8427e /home/Times/projects/invader/index_.php
mod 9faca22b3a86e0766eaed49a5cb702d6 /home/Times/projects/invader/changelog.txt



Офлайн

#4 Янв. 8, 2010 20:40:05

Vaal
От:
Зарегистрирован: 2010-01-07
Сообщения: 21
Репутация: +  -1  -
Профиль   Отправить e-mail  

Монитор изменения файлов

а этот svn еще доступен? у меня не получилось к нему подцепиться



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version