Настройка резервного копирования VDS
- Опубликовано в Wiki
- Станьте первым комментатором!
Самая очевидная необходимость после установки и настройки VDS, выделенного сервера или хостинга — резервное копирование. Мы не постоянно напоминаем, что для безопасности нужно сохранять не делать резервные копии, но и сохранять копии резервных копий.
Многие наши клиенты используют VestaCP, CPanel и ISPmanager, где можно просто настроить резервное копирование данных на различные источники. Если же Вы используете чистую VDS, то мы предлагаем рассмотреть создание резервных копий папок сервера, каталогов с веб сайтами, баз данных и загрузки их на сервис Dropbox.
Для этого существует бесплатный и простой скрипт backup-manager. Его установка и настройка максимально простая и не займет много времени.
Рассмотрим, как сделать резервное копирование на Dropbox
# Debian, Ubuntu
apt-get install backup-manager
# Centos
yum install backup-manager
По завершению инсталляции, отредактируем файл /etc/backup-manager.conf, в котором все конфигурации документированы. В нашем случае он должен выглядить так
export BM_DAILY_CRON="true" # запуск ежедневно
export BM_REPOSITORY_ROOT="/var/backup-manager" # директория хранения бэкапов
export BM_TEMP_DIR="/var/tmp" # временный каталог
export BM_REPOSITORY_SECURE="true"
export BM_REPOSITORY_USER="root"
export BM_REPOSITORY_GROUP="root"
export BM_REPOSITORY_CHMOD="770"
export BM_ARCHIVE_CHMOD="660"
export BM_ARCHIVE_TTL="5"
export BM_ARCHIVE_FREQUENCY="daily"
export BM_REPOSITORY_RECURSIVEPURGE="false"
export BM_ARCHIVE_PURGEDUPS="true"
export BM_ARCHIVE_PREFIX="$HOSTNAME"
export BM_ARCHIVE_STRICTPURGE="true"
export BM_ARCHIVE_NICE_LEVEL="10"
export BM_ARCHIVE_METHOD="tarball-incremental mysql" # копии файлов и дампы баз данных MySQL
export BM_TARBALL_NAMEFORMAT="long"
export BM_TARBALL_FILETYPE="tar.gz"
export BM_TARBALL_DUMPSYMLINKS="false"
declare -a BM_TARBALL_TARGETS # ниже указываем необходимые директории
BM_TARBALL_TARGETS[0]="/etc"
BM_TARBALL_TARGETS[1]="/var/www"
BM_TARBALL_TARGETS[2]="/home"
BM_TARBALL_TARGETS[3]="/root"
export BM_TARBALL_TARGETS
export BM_TARBALLINC_MASTERDATETYPE="weekly"
export BM_TARBALLINC_MASTERDATEVALUE="1"
export BM_MYSQL_DATABASES="__ALL__"
export BM_MYSQL_SAFEDUMPS="true"
export BM_MYSQL_ADMINLOGIN="root"
export BM_MYSQL_ADMINPASS="SeCuRePaSsWoRd" # пароль к MySQL
export BM_MYSQL_HOST="localhost"
export BM_MYSQL_PORT="3306"
export BM_MYSQL_FILETYPE="bzip2"
Внеся изменения, можно проверить работу backup-manager запустив его из командной строки:
# backup-manager -v
/var/backup-manager/vds.host-for.net-etc.20140416.master.tar.gz: ok (9M, 80933e817bf70aa079ddb7515698e25e)
/var/backup-manager/vds.host-for.net-var-www.20140416.master.tar.gz: ok (1M, 0aae02715773e09298f7fd26e3d0a7f7)
/var/backup-manager/vds.host-for.net-home.20140416.master.tar.gz: ok (1M, 0b11cc7e8cecc36e9004b5bd223a963d)
/var/backup-manager/vds.host-for.net-root.20140416.master.tar.gz: ok (48M, 9147e1817894295015d7438e8ea28678)
Creating a default MySQL client configuration file: /root/.backup-manager_my.cnf
/var/backup-manager/vds.host-for.net-all-mysql-databases.20140416.sql.bz2: ok (1M, 93cee49736e67c71001825b31606a86d)
# ls -l /var/backup-manager/
итого 56512
-rw-rw---- 1 root root 396 Апр 16 14:20 vds.host-for.net-20140416.md5
-rw-rw---- 1 root root 101758 Апр 16 14:20 vds.host-for.net-all-mysql-databases.20140416.sql.bz2
-rw-rw---- 1 root root 8733029 Апр 16 14:20 vds.host-for.net-etc.20140416.master.tar.gz
-rw------- 1 root root 30605 Апр 16 14:20 vds.host-for.net-etc.incremental.bin
-rw-rw---- 1 root root 467 Апр 16 14:20 vds.host-for.net-home.20140416.master.tar.gz
-rw------- 1 root root 179 Апр 16 14:20 vds.host-for.net-home.incremental.bin
-rw-rw---- 1 root root 48862421 Апр 16 14:20 vds.host-for.net-root.20140416.master.tar.gz
-rw------- 1 root root 5825 Апр 16 14:20 vds.host-for.net-root.incremental.bin
-rw-rw---- 1 root root 102889 Апр 16 14:20 vds.host-for.net-var-www.20140416.master.tar.gz
-rw------- 1 root root 3668 Апр 16 14:20 vds.host-for.net-var-www.incremental.bin
Если результат такой как выше, то резервные копии созданы, и теперь backup-manager будет запускаться каждую ночь, если указали в настройках параметр BM_DAILY_CRON="true.
Следующим этапом будет загрузка архивов на серверы Dropbox.
Настоятельно рекомендуем создать для резервных копий отдельный аккаунт Dropbox. Если пройдена, загрузим и установим официальный клиент dropbox на сервер:
wget -O - "http://www.dropbox.com/download/?plat=lnx.x86_64" | tar xvzf - -C /root
Далее необходимо авторизовать сервер для начала работы с Dropbox. Запускаем клиентский скрипт:
# /root/.dropbox-dist/dropbox
Этот компьютер не подсоединен к аккаунту Dropbox...
Чтобы подсоединить этот компьютер, перейдите по ссылке https://www.dropbox.com/cli_link?host_id=********************
Скопируйте полученную ссылку и откройте ее в браузере. При необходимости — авторизуйтесь на сайте Dropbox. После этого скрипт сообщит об успешной привязке сервера к dropbox-аккаунту:
Этот компьютер теперь подсоединен к аккаунту Dropbox. Добро пожаловать, Test User!
Нажмите Ctrl-C и приступим к настройке клиента Dropbox. Прежде обеспечим запуск dropboxd при загрузке системы. Это сделать лучше всего с помощью планировщика. Запустите crontab -uroot -e и вставьте сточку:
@reboot $HOME/.dropbox-dist/dropboxd
С помощью символьной ссылки укажите для клиента dropbox расположение файлов с резервными копиями:
ln -s /var/backup-manager /root/Dropbox/backup
Настройка резервного копирования на Dropbox закончена. Перезагрузим систему или запустим клиентскую часть dropbox:
Shell /root/.dropbox-dist/dropbox & 1 /root/.dropbox-dist/dropbox &
Через пару минут хранилище начнуться загружаться резервные копии данных. Теперь каждый день скрпит будет создавать обновленный архив с файлами, а dropbox-клиент обеспечит их загрузку в облачное хранилище.