нужно написать схему инкрементального архивирования с использованием

консольной версии rar и с возможностью удаления промежуточных глав. И

возможностью восстановления файлов на дату любой главы.

написать нужно на php5.

Как это реализовать:

как узнать все файлы нужные для определённого чаптера?

запрос к базе данных в котором нужная ревизия файла находится между первой и последней ревизией этого файла.

Каждый раз мы создаём новую БД во временном файле и все новые создаваемые или файлы для изменений во временных файлах. и только после того как все изменения внесены успешно мы даём временным файлам нормальные имена затирая при необходимости старые файлы.

колонки:

name - полное имя файла

modify_date - дата и время последнего изменения

size - размер

first_rev - ревизия, в которой файл появился в первый раз

last_rev - ревизия, в которой файл появился в последний раз

скрипт должен рабоать так:

добавить главу:

ibackup a имя_архива имя_папки

модифицировать главу:

ibackup m[=номер] имя_архива имя_папки

удалить главу:

ibackup d[=номер] имя_архива имя_папки

извлечь из главы:

ibackup e[=номер] имя_архива [имя_папки]

При удалении промежуточных глав мы файлы, которые были добавлены в этой главе переносим в следующую, если, конечно, они должны там быть.

У ключей a и m должна быть необязательная опция, которая указывает силу сжатия. Опция аналогична по синтаксису используемой в rar. По умолчанию используется самое быстрое сжатие.

Аналогично мы используем необязательную опцию -r=no, которая означает отсутствие использования рекурсии.

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

ПРимеры использования:

мы создаём первую главу:

ibackup a first /opt

Создаются файлы:

first.sq3

first.0000.rar

Если через день запустим:

ibackup a first /opt

Получим:

first.sq3

first.0000.rar

first.0001.rar

Если через день запустим:

ibackup a first /opt

Получим:

first.sq3

first.0000.rar

first.0001.rar

first.0002.rar

запустим:

ibackup d=1 first

Получим:

first.sq3

first.0000.rar

first.0002.rar

Файлы, которые были в ревизии 1 и в ревизии 2 все перешли в ревизию 2.

Для вопросов используйте аську: 113035027

18 лет назад
skamenev
Сергей 
49 лет
21 год в сервисе
Был
7 лет назад

Заявки фрилансеров

Нет заявок фрилансеров