Резервное копированые данных с веб-сервера - используем "облака": привет Dropbox!
Dec 05, 2012 10:10
Посвящу пост резервному копированию данных с веб-серверов в "облака", с использованием Dropbox.
Некоторое время назад встал вопрос резервного копирования linux-сервера: файлы конфигурации, дамп базы данных, PHP-скрипты, JS и CSS сайтов, в общем - всего, что только требуется сохранить на случай, если с сервером что-то произойдет, и данные будут потеряны. Наиболее примитивный способ бэкапа - это с помощью crond делать архивы с копиями необходимых файлов, и периодически сливать копии по SFTP на свой домашний/рабочий комп, например, или на другой сервер. Эту задачу можно без проблем автоматизировать: сервер создает по расписанию архивы, а домашний комп или другой сервер по расписанию же коннектятся по SFTP и скачивают эти архивы. У данного подхода есть несколько существенных недостатков: 1. На домашний комп под управлением Windows что-то автоматически копировать - нетривиальная задача, хотя и решаемая с помощью расписания и скриптов. 2. Домашний комп обычно не включен круглосуточно. 3. Если копии делать на другой сервер, то требуется, как минимум, этот другой сервер, да и его надежность, опять же, не 100%.
В общем и целом, я полагаю, проблемы понятны. Потому было решено использовать новые "облачные" технологии.
Итак, есть замечательный облачный сервис dropbox.com, позволяющий получить некоторое пространство в "облаке" совершенно бесплатно. Сразу дают 2 гигабайта, но с помощью выполнения некоторых несложных манипуляций (подключить акк фэйсбука, твиттера, твитнуть про дропбокс) можно еще расширить пространство, затем есть реферальная программа, с помощью которой можно расширить еще на 16 Гб (по 500 Мб за реферала, кстати, буду благодарен за регистрацию по моей реферальной ссылке http://db.tt/lmQlFor1), а если участвовать в программе Space Race (это программа для учебных заведений, для участия в ней достаточно иметь почтовый ящик на сервере своего института, притом можно уже и не учиться, закончив ВУЗ, главное чтоб ящик работал) - то еще получаем до 25 Гб на 2 года нахаляву.
На Dropbox все данные хранятся в облаке, и являются копиями папки Dropbox, которую создает клиент дропбокса на компьютере. Замечу, что подключить можно все свои компьютеры и серверы, и их папка Dropbox будет синхронизироваться через облако, таким образом, данные будут храниться и в облаке, и на машинах! При этом клиенты Dropbox поддерживает частичную синхронизацию, когда на каждой машине синхронизируются только разрешенные папки, а другие - нет (это позволяет, например, хранить в облаке, скажем, много гигов фотографий с домашнего компа, и при этом на другие компьютеры, ноутбук и сервер, например, фотографии скачиваться не будут).
Ну да перейдем от теории к практике. Итак, что требуется сделать для решения задачи резервного копирования? 1. Регистрируемся на dropbox.com (напрямую на сайте или по реферральной ссылке, например моей http://db.tt/lmQlFor1 ;) ). 2. Устанавливаем клиент на домашний компьютер, скачав его после регистрации. 3. На сайте, после регистрации и входа в систему, справа наверху жмем "Get free space!" и выполняем манипуляции по получению расширенного дискового пространства в облаке. Hint: если подключить фотоаппарат или флешку от фотоаппарата с 3+ Гб фоток, и позволить дропбоксу слить их в облако (он сам обнаружит фотоаппарат или карточку памяти и предложит это сделать), то можно получить 3 гига халявного пространства - каждые 500 Мб фоток будут давать +500 Мб пространства, и так до 6 раз, т.е. 3 Гб. Фотки после процедуры удаляем. 4. Теперь ставим клиент дропбокса на сервер. Для CentOS 5 я использовал этот мануал: http://archive.ianwinter.co.uk/2011/05/16/centos-and-dropbox/ Ставим клиент согласно мануалу, запускаем, копируем предложенную ссылку и с ее помощью на сайте дропбокса активируем подключенный компьютер в аккаунте. На сервере появится папка ~/Dropbox (мы под рутом, так что это /root/Dropbox), в которой и лежат все папки и файлы, хранящиеся в облаке. Если там уже что-то есть (с домашнего компа), то клиент начнет скачивать это на сервер. 5. Настраиваем клиент дропбокса. Для этого идем сюда http://www.dropboxwiki.com/Using_Dropbox_CLI и читаем мануал, как управлять им через коммандную строку. Вообще, достаточно скачать dropbox.py (обратите внимание, ему требуется для работы Python версии 2.6, в CentOS 5 мне потребовалось отдельно его устанавливать: yum install python26), и с помощью команды типа "./dropbox.py exclude add ~/Dropbox/папка" исключить папки, которые не нужно копировать на сервер (скажем, папки с фотографиями), это позволит использовать дропбокс для каких-то личных нужд, и при этом не забивать лишними файлами диск сервера. 6. Настраиваем бэкап всего, что необходимо, в папку дропбокса. Для этого я использую скрипты в cron.daily, которые создают дамп БД, архивы конфигов и т.п., и все это сохраняют в папку ~/Dropbox/server_backup.
Вот, собственно, и все. Теперь резервные копии будут помещаться в облако, а оттуда - на домашний компьютер, например, что существенно повышает надежность хранения информации и удобство восстановления в случае необходимости (для восстановления сервера "с нуля" достаточно будет установить на него дропбокс, и сразу после этого все бэкапы станут доступны в папке дропбокса - остается их скопировать "на место").