Skip to content

oldbay/diff_history

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Логер изменений файла на основе GIT


Задача:
>Используя shell и стандартные системные утилиты, организовать сохранение истории изменений файла. Файл может быть как текстовым, так и двоичным. >История должна фиксироваться не реже одного раза в час и не чаще одного раза в минуту. Не нужно сохранять больше 24 последних изменений.
Реализовано методами фиксации истории изменений файла в git: как в результате итеративного запуска утилиты (в ручную или в cron) так и «демонизацией» процесса утилиты.

>* Считать ошибкой невозможность закончить процедуру сохранения истории за 10 секунд.
Не реализовано

>* Записывать в системный лог сообщения об успешных сохранениях и ошибках.
Реализовано через loger

>* Обеспечить информирование заданного пользователя об ошибках исполнения скрипта.
Не реализовано

>* Обеспечить целостность данных при одновременном запуске нескольких копий скрипта
Реализовано через отслеживание pid процесса и механизмы git

>* Обеспечить целостность данных при работе на сетевом томе
Целостность обеспечивается механизмами git


Файлы:
diff_daemon.sh - скрипт «демонизации» процессов утилиты
diff_history.cfg - конфигурационный файл утилиты
diff_history.sh - основной файл утилиты
rebaser.py - python скрипт обрезания лога изменений (git rebase).
rebaser.sh - bash скрипт обрезания лога изменений (git rebase).

зависимости:
git(>=2.10)
dialog(>=1.3)

Параметры командной строки:
diff_history.sh -f <filename> [-m <modename: iter|rebase|view>|-d <start|stop>] -c <conf file>

-f - имя контролируемого файла
-m - итерационный режим работы утилиты: 
        iter (запуск итерации процесса логирования изменений: по умолчанию); 
        rebase(объединение старых логов ); 
        view(dialog tui инетрфейс просмотра лога изменений файла)
-d - запуск утилиты в режиме демона: 
        start(запуск)
        stop(остановка)
        status(статус) 
-c - имя конфигурационного файла (по умолчанию ./diff_history.cfg)
-h - справка

About

GIT based file loger utilite.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published