Бэкап
Как-то так получилось что уже давольно давно передо мной остро встала проблема бэкапа. Суть её заключается в том что хотелось бы иметь некоторое количество бэкапов за определенный промежуток времени, дабы можно было без особых проблем совершать восстановления чего попало откуда попало.
Сумбурно, да? Проще говоря - я хочу иметь некую утилиту которая позволит мне работать с исходниками не волнуясь потереть что-то жизненно необходимое. Хочется иметь МНОГО бэкапов, от разных шагов развития проекта, но при этом чтобы это не жрало УЖАСНО много места.
Речь идет, как вы уже догадались об "инкрементном" бэкапе, когда создается "базовая" версия архива раз в несколько дней, а все "промежуточные" архивы содержат лишь различия между текущей и "базовой" версиями.
Возникает нетривиальная по сути своей проблема отслеживания изменений в файлах. Так, чтобы это было не слишком сложно, трудоемко и эффективно. Вопрос интересный, требующий творческого подхода. Поэтому, в силу своей лени, я его обошел :)
Немногие знают, что набирающий ныне популярность архиватор 7z в одном из режимов умеет создавать архив-разность между существующим архивом и текущим состоянием файлов. Т.е. именно то что нам нужно.
Поэтому, чтобы заполучить практичную систему бэкапа, (о которой я распинаюсь уже полстраницы) нам надо написать примитивнейший скрипт на Си. Для этой цели я привлек к разработке Pelles C Compiler - некую минималистичную IDE для разработки программ на Си.
Исходный код и скомпилированный вариант, вместе с консольной частью от 7z можно взять по
этой ссылке
Отдельно компилированный вариант -
здесь, но к нему нужны еще 7z.exe, 7z.dll и 7-zip.dll которые можно получить на
7-zip.org
|
Задача в стадии 'на выполнение' |
| Leon |
13.11.2009, 22:12:31 |
|
| надо бы как-то прикрутить сюда работу с планировщиком задач винды. когда-то я разбирался с его апи - покопаться, вспомнить, прикрутить. |
| Леонид |
13.11.2009, 12:27:12 |
|
| впрочем, возможно получится использовать его с консольным вариантом 7za.exe, только предварительно надо переименовать файл в 7z.exe |