вторник, 21 января 2014 г.

Консольный BackUP с помощью Duplicity на примере CentOS 6.5

Установим CentOS как описано в предыдущей статье "Установка CentOS 6.5 minimal"

Подключим репозиторий EPEL, для этого выполним следующие команды

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6*.rpm
Теперь установим нужные пакеты
yum install duplicity cifs-utils dosfstools ntfsprogs
duplicity - будет отвечать за сам бэкап
cifs-utils - потребуется для работы с NTFS разделами и их подключением по сети
dosfstools - для поддержки mkfs.vfat, mkfs.msdos
ntfsprogs - для поддержки mkfs.ntfs

Настройка дисков NTFS

Посмотрим куда подключились диски
fdisk -l
Подключаемся к нужному нам диску, например sdc
fdisk /dev/sdc
Создаём новый основной раздел. (Команда n). В нашем случае на всю ширину диска.

Создаем партицию
Нажимаем «p», «1» и дальше только «ENTER»

По умолчанию создаётся базовая система для текущей операционной системы, в нашем случае это ext3. Чтобы создать другой. Нажимаем t и вводим код NTFS системы.

Полный листинг всех доступных файловых систем выдаётся по команде L, после t.
Нажимаем «7» (Выбираем NTFS)

Проверяем наши действия. Выводим итоговую таблицу разделов командой «p»
Если всё верно, производим запись на диск. Нажимаем «w» и дальше «ENTER»
Внимание! Любые данные на диске будут удалены!

Мы создали таблицу разделов. Однако для работы диска нам нужно его отформатировать.
mkfs.ntfs /dev/sdc1 -f
Готово

Настроим монтирование дисков при загрузке системы

Выполним команду blkid чтобы узнать UUID наших разделов.
blkid
и получим в ответ, где видим идентификаторы
/dev/sda1: UUID="57cf7f73-af52-43a0-bc4d-9145b265f78a" TYPE="ext4"
/dev/sda2: UUID="LMUQet-vI6k-hip9-0Hys-7PNf-04M3-uX32gW" TYPE="LVM2_member"
/dev/sdc1: UUID="257D4BFE5869E341" TYPE="ntfs"
/dev/sdb1: UUID="402C5B1D505943A6" TYPE="ntfs"
/dev/mapper/vg_backup-lv_root: UUID="ee44adc5-75c2-4358-97ab-99a6045443c2" TYPE="ext4"
/dev/mapper/vg_backup-lv_swap: UUID="77f66b17-5182-4331-9012-44f576b9acaf" TYPE="swap"
Создадим каталоги куда будут монтироваться диски
mkdir /mnt/disk1
mkdir /mnt/disk2
mkdir /mnt/disk3
Добавим строки в fstab для монтирования при загрузке
nano /etc/fstab

Для разделов
UUID=402C5B1D505943A6 /mnt/disk1 ntfs-3g exec,user,auto,rw 0 0
UUID=257D4BFE5869E341 /mnt/disk2 ntfs-3g exec,user,auto,rw 0 0
Для сетевой папки
//192.168.1.1/share /mnt/disk3 cifs auto,_netdev,domain=DOMAIN.LOCAL,username=USERNAME,password=PASSWORD,codepage=cp1251,iocharset=utf8,dir_mode=0777,file_mode=0777 0 0
Настройка дисков закончена

Настройка BackUP на основе Duplicity 

Действия выполняются на основе CRON.
Добавим в crontab следующие строки
nano /etc/crontab
00 1 * * * /usr/bin/duplicity full --no-encryption --volsize=100 --log-file=/backup/duplicity.log /mnt/disk3/ file:///mnt/disk1/
00 */3 * * * /usr/bin/duplicity incr --no-encryption --volsize=100 --log-file=/backup/duplicity.log /mnt/disk3/ file:///mnt/disk1/
* 3 * * 0 /usr/bin/duplicity remove-older-than 7D --force file:///mnt/disk1/
00 1 * * * означает выполнить ежедневно в 1:00
00 */3 * * * означает выполнять каждые 3 часа 00 минут
* 3 * * 0 - означает выполнять каждое воскресенье в 3 часа

разберемся с duplicity:
full - означает выполнить полый  бэкап
incr - инкрементный(записывает только изменения), возможно только после создания полного
--no-encryption - не шифровать, по умолчанию шифрование включено
--volsize=100 - размер блоков по умолчанию 25Mb
--log-file=/backup/duplicity.log - вести лог файл /backup/duplicity.log
/mnt/disk3/ - откуда взять файлы
file:///mnt/disk1/ - куда положить файлы бэкапа
remove-older-than 7D --force file:///mnt/disk1/ - удаление бэкапов старше 7 дней из директории

Шпаргалка

duplicity full /source/ file:///target/ --no-encryption #полный бэкап

duplicity incr /source/ file:///target/ --no-encryption #инкрементальный бэкап(возможно только после полного)

duplicity restore  file:///target/ /new --no-encryption #полное восстановление с последней версии

duplicity restore file:///target/  /source/ -t 1h --no-encryption #полное восстановление состояния час назад

duplicity -t 1h --file-to-restore some_dir/myfile file:///target/  /source/ #восстановить один файл с состояния час назад

duplicity verify  file:///target/ /source/ --no-encryption #сверить файлы с бэкапом(последняя версия)

duplicity verify  file:///target/ /source/ -t 1h --no-encryption #сверить файлы с бэкапом(состояние час назад)

duplicity list-current-files file:///target/ #просмотр списка файлов

duplicity collection-status file:///target/ #информация о бэкапе(начата/закончена, количество etc)

Комментариев нет:

Отправить комментарий