Резервное копирование dropbox. Бэкап файлов, базы данных и настроек сервера в Dropbox

Уже несколько лет как появилась возможность любому смертному желающему арендовать не только shared-хостинг, но и «полноценный» сервер с root-доступом и возможностью настроить его так, как хочется самому. Настроить, например, кроме web-сервера еще и кучу других сервисов.
Так же поступил и я несколько лет назад. Сначала арендовал один сервер, потом другой, и переносил настройки ручками, находя нужные файлы в директории /etc.

За пару лет на моём сервере осело несколько блогов друзей, и даже почтовый сервер, так как давно не хочу, чтобы моя почта была у Google. Насчет сохранности данных задумывался после каждой статьи на Хабре, но всё было как-то не до этого. И, как говорится, админы делятся на три категории: на тех, кто не делает бэкапы, на тех, кто уже делает и на тех, кто даже проверяет восстанавливаемость из бэкапов. Так получилось и со мной, хоть хостер и очень хороший, но произошла у них авария с жесткими дисками. Да такая, что неделю они пытались восстановить диски и предварительные оценки были очень неутешительными. А бэкапов у меня не было. Какое настроение у меня было в те дни можете сами представить.

Но через несколько дней техникам хостера удалось-таки восстановить данные и запустить все виртуальные сервера на той ноде. А я задумался о бэкапах. Думал я так - бэкап должен быть не на том же сервере (естественно!), желательно, чтобы он был у меня на компьютере, но не в одном экземпляре. Я обдумал и установку FTP на домашний компьютер и даже отправку архивов письмами, но все эти варианты меня не устраивали. И я понял, что надо попробовать Dropbox, которым я к тому времени пользовался уже пару лет, а бесплатных гигов у меня было около 18-ти.

Преимущества бэкапа в Dropbox:

  • Независимость от домашней инфраструктуры и канала в Интернет
  • Множественные копии (сразу на все синхронизируемые ПК)
  • Кроме собственного хранения бэкапы хранятся и в облаке

Что делает представленный мной скрипт?

  • Инкрементальный бэкап файлов в указанных папках (по первым и пятнадцатым числам идет полный бэкап)
  • Бэкап всей базы MySQL
  • Бэкап архивируется с помощью 7zip, с указанием пароля (вам же не надо хранить пароли в открытом виде в Dropbox"е?)

Как это делается?

Вкратце, создаётся «приложение» с точки зрения платформы Dropbox, авторизуется пользователем (то есть нами) и пишется скрипт, который пользуется авторизационными данными и заливает файлы бэкапа на Dropbox.

А точнее?

Шаг 1 - создание приложения
Заходим на страницу App Console , нажимаем кнопку «Create app», выбираем тип «Dropbox API app», выбираем пункт «Files and datastores», так как мы собираемся работать с файлами, а в следующем пункте отвечаем «Yes - My app only needs access to files it creates», это означает, что ваше приложение будет ограничено только своей отдельной подпапкой в папке App, к другим файлам у него не будет доступа. Придумываем название своему приложению и нажимаем «Create app».
Перед вами предстанет целая страница настроек созданного приложения, но там не требуется ничего дополнительно настраивать. Но пока не закрывайте её.
Шаг 2 - скачивание и установка SDK
Чтобы писать приложения, которые будут работать с файлами в вашем Dropbox"е, надо зайти в раздел Core API . Там мы можем скачать нужные нам SDK, почитать документацию и пройти обучающие туры.
Так как я считаю, что лучшим языком для скриптования для меня является Python, то я скачал себе его SDK и установил. Установка очень простая, всё ограничивается скачиванием, разархивированием самого SDK и установкой его с помощью команд "python setup.py install ", или "pip install dropbox ".
Шаг 3 - авторизация
Библиотека Core API использует OAuth v2 , но Python SDK от Dropbox"а сам позаботится о том, как им пользоваться, так что вам не о чем волноваться и не придется писать всё с нуля.
Настало время накодить небольшой скрипт:

# Включить Dropbox SDK import dropbox # Вставить настоящие app_key и app_secret со страницы созданного приложения из шага 1 app_key = "INSERT_APP_KEY" app_secret = "INSERT_APP_SECRET" flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret) # На данном этапе юзер авторизуется authorize_url = flow.start() print "1. Перейдите по ссылке: " + authorize_url print "2. Нажмите "Allow"" print "3. Скопируйте авторизационный код." code = raw_input("Вставьте авторизационный код сюда: ").strip() # Если вы ввели правильный код, то дальше он отсылается на сервер и получается access_token, который нам нужен access_token, user_id = flow.finish(code) # Для проверки авторизации выведем информацию об аккаунте client = dropbox.client.DropboxClient(access_token) print "linked account: ", client.account_info() # А сам access_token вам надо сохранить в файл для дальнейшей работы скрипта print "access_token: ", access_token

Шаг 4 - создаём временную папку и файл токена
Сам скрипт backup.py у меня лежит в папке /root, в ней же есть временная папка backup и файл dropbox_token.txt. Вам тоже нужно создать их и в файл записать токен с предыдущего шага. Токен состоит из двух строк, в файле они именно так и лежат, с переносом строки.
Шаг последний - пишем скрипт бэкапа

Развернуть

#!/usr/bin/python import os import sys import time import string from os.path import getsize curDate = time.strftime("%d.%m.%Y", time.gmtime()) curDay = time.strftime("%d", time.gmtime()) backupDelay = time.time()-86400 if curDay == "01" or curDay == "15": backupDelay = 0 print "curDate:", curDate # Include the Dropbox SDK libraries from dropbox import client, rest, session # Get your app key and secret from the Dropbox developer website APP_KEY = "ключ приложения" APP_SECRET = "секретный код приложения" # ACCESS_TYPE should be "dropbox" or "app_folder" as configured for your app ACCESS_TYPE = "app_folder" sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) oauth_token = "" oauth_token_secret = "" f = open("dropbox_token.txt","r") if f: oauth_token = string.strip(f.readline()) oauth_token_secret = string.strip(f.readline()) f.close() print "oauth token found:", oauth_token, oauth_token_secret if oauth_token == "" or oauth_token_secret == "": request_token = sess.obtain_request_token() # Authorize the application on dropbox site url = sess.build_authorize_url(request_token) print "url:", url print "Please visit this website and press the "Allow" button, then hit "Enter" here." raw_input() # This will fail if the user didn"t visit the above URL and hit "Allow" access_token = sess.obtain_access_token(request_token) f = open("dropbox_token.txt","wb") f.write(access_token.key + "\n") f.write(access_token.secret) f.close() else: sess.set_token(oauth_token, oauth_token_secret) client = client.DropboxClient(sess) print "linked account:", client.account_info() def sync_dir(dir): rootdir = dir print "Syncing directory:", rootdir startTime = backupDelay for root, subFolders, files in os.walk(rootdir): for file in files: fname = os.path.join(root,file) if os.path.getmtime(fname)>startTime: #print root, file os.system("mkdir -p "backup"+root+""") os.system("cp ""+fname+"" "backup"+fname+""") print "Making dump of MySQL databases..." os.system("mysqldump --all-databases -uroot -pROOT_ПАРОЛЬ_MYSQL -r backup/backup.sql") sync_dir("/var/www") sync_dir("/var/spool/virtual") sync_dir("/home/user") backupName = "backup_"+curDate+".7z" print "Creating archive with name", backupName os.system("7z a -pПАРОЛЬ_АРХИВА "+backupName+" backup/* /etc") f = open(backupName,"rb") if f: fsize = getsize(backupName) uploader = client.get_chunked_uploader(f, fsize) print "Uploading file", fsize, "bytes..." while uploader.offset < fsize: try: upload = uploader.upload_chunked() print "." except rest.ErrorResponse, e: # perform error handling and retry logic print "error uploading file!" uploader.finish("/"+backupName) f.close() print "File uploaded successfully." print "Deleting temp files..." os.system("rm -r backup/*") os.system("rm " + backupName);

Послесловие
  • Этот скрипт я добавил в crontab с запуском ежедневно в 4:00 утра.
  • В скрипте есть три строки с вызовом функции sync_dir, точно так же вы сами можете настроить, какие папки вам надо бэкапить.
  • Скрипт не удаляет файлы, которые были удалены из папки, если инкрементально разархивировать полный архив и последующие, то удалённые папки/файлы останутся.
  • Удаление старых бэкапов в самом Dropbox я делать не стал, чищу папку сам когда вспоминаю об этом.
  • Недавно взял себе еще пару VPS в других странах, а в скрипт добавил только префикс к названию бэкапов, таким образом все бэкапы сливаются в одну папку, но их можно отличить очень просто.

Резервное копирование данных — очень важный аспект Вашей работы за компьютером. Любая система, любая техника подвержена сбоям, и необходимо обеспечить максимальную безопасность данных, без которых продолжение зачастую просто невозможно.

В первую очередь, это Ваши логины, пароли, адреса , которые Вы храните в специальных программах, например, в программе .

Это также различные книги, ролики, текстовые файлы, фото и картинки , которые Вам дороги, и которые Вам не хочется потерять.

Это могут быть различные обучающие курсы, аудио и видеофайлы , которые при хранении занимают много места, и резервные копии которых Вы тоже хотели бы сохранить, для надежности.

Кроме того, в целях безопасности, на компьютер с хостинга часто скачиваются резервные копии сайтов и блогов , как файлов, так и .

Резервное копирование данных на компьютер — зачастую не самый лучший вариант. С компьютером тоже может что-то случиться. Можно, конечно, купить переносной жесткий диск, но, во-первых, это дополнительный расход средств. во-вторых такое копирование неудобно. Не исключены также ситуации, когда все носители по каким-то причинам могут пропасть.

Гораздо проще и удобнее организовать с помощью сервисов хранения данных , которые находятся в Интернете. Такие сервисы еще называют «облачными» сервисами хранения данных. Вам не нужно покупать дополнительные носители. Достаточно воспользоваться одним из таких сервисов.

Например, корпорация Microsoft предоставляет на сервисе SkyDrive бесплатно пользователям целых 25 Гбайт . Но сейчас мы с Вами поговорим о другом сервисе хранения данных , который называется

– это довольно интересный сервис облачного типа. Что это значит? Только то, что можно хранить свои папки и файлы на стороннем сервере, не занимая место на компьютере. И делать это бесплатно. Но, как только мы зарегистрируемся в , у нас будет всего 2 Гб свободного пространства.

Впрочем, для начала и этого хватит, а увеличивать свою квоту можно, приглашая друзей по . Но обо всех тонкостях этого замечательного сервиса вы узнаете позже, а теперь – о том, как при помощи Dropbox сделать резервную копию (бэкап) своего сайта и, естественно, сохранить ее.

Другие публикации на тему Dropbox:

В принципе, все должны прекрасно знать, как это делать при помощи специальных плагинов или методов хостинг-провайдера, но дело в том, что у таких методов всегда остается один существенный минус – мы или занимаем место для резервирования сайта у себя на компьютере, или тот же объем у нас тратится на нашем сервере. Что не есть хорошо – иногда резервные копии занимают много места. И если на компьютере несколько десятков мегабайт вроде бы и не жалко, то место на сервере – это наши деньги. К тому же, храня резервную копию на своем ПК, мы рискуем когда-нибудь ее потерять. Переустановили операционную систему, поймали вирус – да мало ли что. Dropbox позволяет забыть о своих переживаниях. Создал бэкап, и забыл о нем – все в целости и сохранности. Но для этого нам нужно будет установить на сайт одни небольшой плагин, который и поможет связаться с нашим аккаунтом в Dropbox и поместить туда вашу резервную копию сайта. Плагин называется wp Time Machine .

Резервная копия нашего сайта, созданная при помощи этого плагина и сохраненная в Dropbox, будет содержать абсолютно все данные о нашем сайте — страницы, записи, комментарии, изображения и медиафайлы, темы и , а также копию в стандартном sql формате. Вот такой полезный функционал. Бэкап – это вещь необходимая, и даже сейчас, когда многие хостеры делают резервные копии наших сайтов автоматически, не помешает иметь свою – так, на всякий случай. Поэтому начнем с установки плагина wp Time Machine на сайт. И не забываем – у нас должен быть аккаунт в Dropbox, или просто регистрируемся прямо сейчас . Эта процедура займет у нас всего пару минут – заполнить несколько полей со своими данными, получить письмо и активировать аккаунт. Если аккаунт уже существует, то просто входим в него – мы знаем, как это делается:

Плагин, как обычно, мы установим из панели администратора нашего . В меню «Плагины» переходим в «Добавить новый» и в поле «Поиск» вбиваем название плагина — wp Time Machine. Вот как это выглядит на практике:

Резервная копия сайта — это все содержимое нашего сайта на WordPress в запакованном виде (zip или tar.gz), включая все наши записи, страницы, комментарии, изображения и медиафайлы, а также все (активированные и неактивированные) плагины и темы и . После того, как плагин будет закачан на сайт, нам останется его только активировать, и можно переходить к настройкам плагина. Для начала необходимо настроить плагин в пункте «Plugin Options». Здесь мы должны определить, в каком формате будет сохраняться наша резервная копия, а также настроить сохранение логов, кэша и другие мелочи, которые, в принципе, можно и не трогать.

После этого в генеральных настройках вводим свой e-mail от Dropbox, пароль от него же, и назначаем папку, куда будет сохраняться наш бэкап. Имя папки может быть абсолютно любым – главное, вписать его на английском языке, иначе вместо названия папки будем видеть крякозябры.

После этих несложных действий жмем на кнопку «Generate wp Time Machine archive», и ждем, пока не создастся наша резервная копия. Пока мы будем ждать, на экране будет крутиться вот такая картинка. Это будет продолжаться минуты 3-4, в зависимости от размера сайта:

После того, как копия создастся, мы в админпанели увидим такое сообщение:

А в нашем Dropbox появится новая папка с тем названием, которое мы ей определили. Там будут находиться все резервные копии нашего сайта.

В бэкапе мы не увидим копии самого WordPress конструктора и его конфигурационного файла . Это делается в целях все той же безопасности. Но каталог wp-content и все его содержимое обязательно будет присутствовать. Поэтому, если нужно получить самую полную копию сайта, то сохраняем файл wp-config.php самостоятельно, и также можно положить его в Dropbox.

При создании бэкапа в нашу новую папку Dropbox попадают следующие файлы:

1. wpTimeMachine-content-files.zip — архив нашего сайта (весь каталог /wp-content).
2. wpTimeMachine-data-files.sql – копия нашей базы данных, в которой хранятся все записи, страницы, комментарии и т.д.
3. wpTimeMachine-htaccess.txt – .htaccess файл конфигурации сервера.
4. wpTimeMachine-Instructions.txt – инструкция пользователю на английском языке.
5. wpTimeMachine-RestorationScript.sh - shell-скрипт, который поможет в автоматическом режиме вернуть .

Если мы пользуемся Dropbox и на компьютере, то можем увидеть, что к нашим папкам добавилась новая, которая содержит резервную копию со всеми вышеперечисленными файлами:

Пользоваться клиентом на компьютере очень удобно. Одним нажатием кнопки в админпанели своего WordPress сайта мы автоматически делаем резервную копию сайта на сервере Dropbox и на своем компьютере. Можно сразу пользоваться архивом wpTimeMachine-content-files.zip. Например, нам нужна копия всего одного файла – не создавать же из-за этого копию всего сайта, если она уже есть. Зашел в бэкап на компьютере, взял что тебе нужно, и все – просто и легко.

Из дополнительных возможностей плагина можно назвать также интересную фишку – возможность хранения резервной копии на не менее популярном сервисе Amazon S3 (см. ), или просто прописать в настройках сохранение на стороннем сервере FTP. Для этого, конечно, нам нужно знать информацию доступа к нему – пароль, логин, адрес. То есть, кроме компьютера и Dropbox, мы можете положить свою копию куда угодно. На этом работа с плагином и сервисом Dropbox закончена, и мы можете быть совершенно спокойны за все данные нашего сайта. У меня пока все. Кстати, по сервису планирую сделать серию интересных публикаций, поэтому продолжение следует. До связи на волнах

Сегодня в Интернете существуют облачные сервисы, которые позволяют пользователям хранить на своих серверах любую информацию. Они очень удобны для размещения резервных копий. Во-первых, архивы на удаленном сервере не зависят от состояния вашего жесткого диска. А во-вторых, они доступны из любой точки мира. Поэтому сегодня мы рассмотрим, как с помощью архиватора и «Планировщика заданий» Windows организовать резервное копирование на один из таких сервисов – Dropbox.

И в первую очередь мы поговорим о подготовке места для хранения архивов. При первом посещении сайта Dropbox пользователю предлагается скачать и установить специальную утилиту. Отказываться от этого не стоит, поскольку она значительно облегчает работу с сервисом. Сама процедура инсталляции абсолютно ничем не примечательна. От пользователя достаточно только нажать на кнопку Install. А вот после завершения процесса утилита предлагает указать аккаунт на Dropbox. Поскольку его у нас еще нет, выбираем пункт I don’t have a Dropbox account.

На следующем экране вводим свои данные.

Ну и, наконец, на последнем этапе выбираем пункт Typical, поскольку особые настройки нам не нужны.

После завершения установки в пользовательской папке Windows появляется папка Dropbox. Для удобства доступа ссылка на нее автоматически размещается в разделе «Избранное». При размещении в этой папке любой информации она автоматически загружается на удаленные сервера. Таким образом, все, что нам нужно сделать – настроить систему автоматического создания и размещения архивов.

Вообще, такую систему мы уже . А поэтому просто возьмем созданный ранее ярлык и внесем в его свойства некоторые изменения. В первую очередь изменим место копирования: исправим G:\backup на C:\Users\User\Dropbox. Далее нам нужно установить пароль на создаваемые архивы. Это желательно сделать, поскольку передача данных в Интернет – потенциально опасная операция. Для этого добавляем к нашей строке следующий ключ: -p******* (вместо звездочек нужно ввести свой пароль). В результате у нас должна получиться вот такая строка параметров: «a –p****** –agYYYY-MMM-DD C:\Users\User\backup @C:\list.txt».

Все остальное можно не трогать. «Планировщик действий» будет с указанной периодичностью запускать созданный нами ярлык. Архиватор в фоновом режиме будет создавать архивы и размещать их в папку Dropbox. Ну а утилита Dropbox будет автоматически загружать их на удаленные сервера.

Привет, дорогие читатели! Продолжаю тему сайта WordPress. Я уже дал подробную инструкцию по резервному копированию сайта на , но там будет сложновато для новичков. Поэтому, сегодня я представлю вам очень полезный плагин WordPress Backup to Dropbox , который облегчит процесс создания резервной копии всего сайта или блога на движке WordPress. С помощью данного модуля можно с легкостью сделать резервное копирование сайта , включая все файлы, базы данных и автоматически сохранять клон веб-ресурса на популярном бесплатном хостинге Dropbox .

Совсем кратко, что такое Dropbox? Dropbox сохранит все ваши документы, видео и любые другие файлы. Данные, которые вы сохраните в Dropbox, будут автоматически отображаться на всех ваших компьютерах, телефонах и даже на сайте Dropbox - у вас отовсюду будет к ним доступ.

WordPress Backup to Dropbox создаст папку в вашем Dropbox

Появится надпись - Поздравляем! Приложение WordPress Backup to Dropbox подсоединено к вашему аккаунту Dropbox:

Вернитесь на страницу настроек плагина и кликнете кнопку "Продолжить":

Кликнете кнопку "Продолжить"

Может возникнуть ошибка при подключении к хостингу, проделайте авторизацию несколько раз. После успешных процедур, приступаем к настройке . Отметьте нужные пункты, название папки где будут храниться копии файлов вашего блога, настройте расписание. Выберите файлы и каталоги, которые необходимо исключить из резервной копии. Клик по имени каталога раскроет его. Обратите внимание: Резервное копирование базы данных будет выполняться независимо от вашего выбора:

Настройка - Резервное копирование сайта на хостинг Dropbox

Сохраните изменения. В разделе WPB2D есть подраздел Backup Monitor это - Ручное резервное копирование:

Если Вы откроете его, тогда сможете вручную создать резервную копию на хостинге. А у меня на этом все. Храните ваши резервные копии сайта (клон) в целях безопасности и вашего душевного спокойствия в надежном месте. Пока и всего хорошего. Увидимся.

С уважением, Сергей. Блог WordPress Mania для начинающих .

(function(w, d, n, s, t) { w[n] = w[n] || ; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-292864-4", renderTo: "yandex_rtb_R-A-292864-4", async: true }); }); t = d.getElementsByTagName("script"); s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(this, this.document, "yandexContextAsyncCallbacks");