-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
49 lines (36 loc) · 3.14 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Логер изменений файла на основе 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 - справка