Linux — создание аналога OS X Time Machine

Постановка задачи: есть NAS WD EX4 объемом 18T. Он используется для хранения данных дизайн студии. Соответственно на нем хранятся текущие проекты и завершенные проекты. Хочется делать ежедневный бэкап данных для возможности откатиться на несколько дней назад. Однако для бэкапа нашелся только диск 3T. Как просто бэкапить только последние данные? Смириться с возможной потерей архивных данных можно, но терять текущие проекты недопустимо. Переносить данные из рабочих каталогов в архивные неудобно. Хотелось бы сделать бэкап абсолютно прозрачным для пользователей, которые привыкли к одной структуре каталогов и не хотят ее менять. Для решения используется адаптированный скрипт, описанный в http://habrahabr.ru/post/149059/. Неудобство описанного скрипта в том, что он копирует исходный каталог целиком, а мне нужно выбрать файлы по дате изменения. Привожу скрипт с моими правками:

#!/bin/sh
date=`date "+%Y-%m-%d-%H%M%S"`

SRC=/mnt/ex4
DST=/backup

find $SRC -mtime -360 -type f > $DST/findlist
rsync -ax --link-dest=../Latest --files-from=$DST/findlist / $DST/Processing-$d$
cd $DST
mv Processing-$date $date
rm -f Latest
ln -s $date Latest

В принципе, ничего сложного нет. Есть только небольшие пояснения:
1) Вначале командой find формируется список файлов с датой изменения не более 360 дней, затем rsync копирует файлы из этого списка в каталог для бэкапа. Если файл уже был скопирован ранее, то создается жесткая ссылка. Это уменьшает время бэкапа и экономит место на диске.
2) Скрипт запускается по ночам cron-ом.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *