Сохраняем все резервные копии в Dropbox

:

: 4

В своей статье «Сохраняем все резервные копии в Dropbox» я расскажу как можно создавать бэкапы и сохранять их в Dropbox, на готовом примере — это Debian 8 покажу как это работает.

Для создания бэкапов, я установлю утилиту backup-manager, для этого выполняем команду:

Для Centos/Fedora/RHEL:

# yum install backup-manager

Для Debian/Mint/Ubuntu:

# apt-get install backup-manager

В ходе установке, вас попросят ввести место для сохранения всех ваших бекапов, я прописал:

выбор директории для хранения бэкапов backup-manager

выбор директории для хранения бэкапов backup-manager

Далее, необходимо прописать все директории для которых нужно делать бэкапы, для меня важны лишь 2 директории:

выбор директорий для создания бэкапов backup-manager

выбор директорий для создания бэкапов backup-manager

После установки можно внести изменения в конфигурационный файл:

# vim /etc/backup-manager.conf

В данном файле, есть комментарии и они помогают в настройке данной утилиты, но я вынес основные строки для изменения (редактирования):

# Говорит утилите чтобы она запускалась каждый день 
export BM_DAILY_CRON="true"
# Путь, где будут лежать ваши бэкапы
export BM_REPOSITORY_ROOT="/var/backup-manager"
# Папка для временных файлов, указываем путь
export BM_TEMP_DIR="/var/tmp" 
#export BM_ARCHIVE_FREQUENCY="daily"
# Создание бэкапов и так же всех БД mysql
export BM_ARCHIVE_METHOD="tarball-incremental mysql"
# Путь без пробелов в названии, у меня будет создаваться бэкапы etc и home:
export BM_TARBALL_DIRECTORIES="/etc /home"
#ИЛИ
# Можно так же использовать массив, в нем прописываем нужны папки для бэкапов:
declare -a BM_TARBALL_TARGETS
BM_TARBALL_TARGETS[0]="/etc"
BM_TARBALL_TARGETS[1]="/home"
BM_TARBALL_TARGETS[2]="/root"
export BM_TARBALL_TARGETS

# Настройка для mysql. Я ее использую, так же есть и др БД
# Прописываем пользователя от которого будет создаваться бэкап БД, у меня это root 
export BM_MYSQL_ADMINLOGIN="root"
# И пароль для пользователя, у меня это root
export BM_MYSQL_ADMINPASS="SeCuRePaSsWoRd"
# Прописываем хост, на котором работает mysql
export BM_MYSQL_HOST="localhost"
# Прописываем порт на котором работает сервер БД mysql
export BM_MYSQL_PORT="3306"

Это не весь конфиг, а только основная его часть, остальное я не трогал и оставил все как есть. Следующим действием я проверю работает ли backup-manager корректно (создает ли бэкапы), для этого запустим его из командной строки и проверим результат:

# backup-manager -v

/var/backup-manager/debian-etc.20150810.master.tar.gz: ok (2M, a11380fc4b446eeee928b93e5688b6b3)
/var/backup-manager/debian-home.20150810.master.tar.gz: ok (10M, d1c596ba77b74d52b4f33f9537b4f3a0)
/var/backup-manager/debian-root.20150810.master.tar.gz: ok (1M, 2cd19c3cba82c721b4ad53c19ec338f3)
Creating a default MySQL client configuration file: /root/.backup-manager_my.cnf
/var/backup-manager/debian-all-mysql-databases.20150810.sql.bz2: ok (2M, 2458cd46a0124328a31c8160e1ee364d)
Error reported by backup-manager-upload for method "scp", check "/var/tmp/bmu-log.VGW6BW".

Проверим наличие бекапов:

# ls -l /var/backup-manager/

total 11696
-rw-rw---- 1 root root 284 Aug 10 05:17 debian-20150810.md5
-rw-rw---- 1 root root 1150009 Aug 10 05:17 debian-all-mysql-databases.20150810.sql.bz2
-rw-rw---- 1 root root 1340334 Aug 10 05:17 debian-etc.20150810.master.tar.gz
-rw------- 1 root root 64020 Aug 10 05:17 debian-etc.incremental.bin
-rw-rw---- 1 root root 9373958 Aug 10 05:17 debian-home.20150810.master.tar.gz
-rw------- 1 root root 26494 Aug 10 05:17 debian-home.incremental.bin
-rw-rw---- 1 root root 2015 Aug 10 05:17 debian-root.20150810.master.tar.gz
-rw------- 1 root root 382 Aug 10 05:17 debian-root.incremental.bin

И так, видно что все работает хорошо и бэкапы созданы. Утилита backup-manager будет выполнять создание бэкапов 1 раз в день, т.к установлена опция BM_DAILY_CRON=»true» в конфиге. Собственно бэкапы создаются и теперь нужно настроить чтобы они отправлялись в Dropbox.

Я крайне рекомендую создать аккаунт в Dropbox для сохранения всех бэкапов. После регистрации,  необходимо скачать и установить клиент для работы dropbox на сервер.

Определяем разрядность своей ОС, для этого есть команда:

# uname -a

Для 64-битных ОС, используйте:

# wget -O - "http://www.dropbox.com/download/?plat=lnx.x86_64" | tar xvzf - -C /root

Для 32-битных ОС, используйте:

# wget -O - "http://www.dropbox.com/download/?plat=lnx.x86" | tar xvzf - -C /root

После такой установки, необходимо произвести авторизацию чтобы начать работать с Dropbox, для этого существует скрипт который стоит запустить:

# /root/.dropbox-dist/dropboxd

Нужно авторизоваться в сам DropBox. Далее, я нашел готовое решение для запуска Dropbox, для этого скачиваем и выставляем права на готовый скрипт:

# wget -O /etc/init.d/dropbox "https://gist.github.com/bezumkin/6712351/raw/108fc8af551cb4fdf7cdd08b891a45f405d283dc/dropbox" && sudo chmod +x /etc/init.d/dropbox

ВНИМАНИЕ! Нужно заменить в данном скрипте (который находится в /etc/init.d/dropbox) пользователя от которого будут запущен дропбокс, а так же юзера от которого он будет работать (заменяем «user1» и «user2» на свои). Незабываем сохраниться и так же, добавим данный скрипт ( службу) в автозагрузку ОС:

# update-rc.d dropbox defaults 6

И так, все готово, теперь пришло время запуска:

# service dropbox start

У Dropbox существует консольная утилиты — dropbox.py, я ее тоже скачаю т.к она необходима:

# wget http://www.dropbox.com/download?dl=packages/dropbox.py -O /root/.dropbox-dist/dropbox.py && chmod +x /root/.dropbox-dist/dropbox.py

Для помощи, используем:

# /root/.dropbox-dist/dropbox.py help

Чтобы все бэкапы автоматически подгружались в dropbox необходимо выполнить линковку для каталогов:

# ln -s /var/backup-manager /root/Dropbox/backup

Чтобы запустить клиентскую часть, используйте:

# /root/.dropbox-dist/dropboxd &

Открываем в браузере ваш аккаунт в dropbox и смотрим бекапы:

dropbox в бекапы

dropbox в бекапы

Моя тема «Сохраняем все резервные копии в Dropbox» завершена. Скоро будет статья как можно создать подобные бэкапы в Google Drive/Yandex.Диск.