- []
Бэкап при помощи 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

