Бэкап при помощи rsync

Вот встала задачка настроить переодический бэкап.

IMHO - для этих целей лучше всего подходит rsync - с помощью данной утилиты можно копировать только изменившиеся файлы - т.е. делать инкрементальный бэкап.

Как все это выглядит?

#!/bin/bash
rsync  -rc --exclude=Thumbs.db -t -e ssh --rsync-path=/usr/bin/rsync --temp-dir=/tmp max@share:/home/max/out/max /home/max/backup
rsync  -rc --exclude=Thumbs.db -t -e ssh --rsync-path=/usr/bin/rsync --temp-dir=/tmp max@share:/home/max/upload/1.Custom /home/max/backup

Заряжаем такой скрипт в крон. У меня он срабатывает раз в неделю -у меня он срабатывает раз в неделю - по выходным, т.к. объем копируемых данных около террабайта.

Откуда террабайт? На машине-источнике и машине-приемнике стоит по несколько HDD, завернутых в Linux Volume Manager (LVM2) - эта штука позволяет абстрагироваться от физических дисков, создать так называемую Volume Group (группу разделов) произвольного размера (даже из нескольких десятков физических HDD) , и уже на Volume Group создавать логические разделы.

В итоге получается, что Volume Group может иметь размер до десятков ТерраБайт, и весь его вы можете определить под один логический раздел.


Ну да я отвлекся - разберем опции коммандной строки:

-e ssh - использовать SSH протокол в качестве транспорта

–exclude=Thumbs.db - файлы для исключения (ну нахрена мне эта виндовая шняга?)

-t - сохранять время модификации; очень рекомендуется, если предполагается повторная пересылка

-r - рекурсивно

-c - для принятия решения о том пересылать файл или нет используется контрольная сумма (мне так больше понравилось - почему не знаю - наверное показалось надежнее)

–rsync-path=/usr/bin/rsync -путь до rsync на машине-источнике

–temp-dir=/tmp - каталог для временных файлов во время пересылки

max@share:/home/max/out/max - пользователь@хост:Путь-к-каталогу-источнику

/home/max/backup - путь куда сохранять

Есть один ньюанс, если в каталоге-источнике указать в конце слэш - то в каталоге назначения появится содержимое каталога-источника. Если же слэш не указывать - то в каталоге-приемнике появится копия каталога источника - в данном примере это будет /home/max/backup/max

Последние изменения: %2010/%03/%22 %01:%Mar