Ромка!eu

  • Отдых
  • Работа
Главная — Блоги — Ромка's blog

Это старая (Drupal 6) версия сайта romka.eu. Она больше не обновляется, комментирование материалов отключено. Обновленная версия сайта доступна по адресу http://romka.eu.

Backup-manager — настройка резервного копирования Linux-сервера на Amazon S3 за 5 минут

Ромка — Сб, 03/13/2010 - 18:45

Настраиваю сейчас под свои веб-девелоперские нужды сервер на основе Debian lenny и когда дошел до настройки резервного копирования данных стало понятно, что задача эта хоть и простая, но очень уж муторная: нужно написать и отладить скрипты, которые будут архивировать нужные папки (причем желательно делать инкрементальные архивы), базы данных, хранилища subversion, а затем переносить эти архивы на удаленный сервер. Задача в общем-то посильная для любого опытного программиста, но минимум день-два написание этих скриптов отнимет.

Очень удачной находкой для решения этой задачи стал backup-manager — это бесплатный набор bash-скриптов, позволяющих:

  • архивировать любые папки, в том числе и создавать инкрементальные архивы. В конфиге просто указывается список директорий, которые должны быть скопированы, а также "черный список" файлов, которые копироваться не будут.
  • делать резервное копирование баз данных MySQL. В конфиге указываются логин и пароль mysql-юзера, имеющего доступ к базам, а всю остальную работу backup-manager делает сам.
  • делать резервное копирование svn-репозиториев, причем бэкап делается не копированием папки с хранилищем, а с помощью команды svnadmin dump.
  • копировать созданные архивы на удаленные сервера по FTP, SSH или (это самая важная для меня фича) в хранилище Amazon S3, а также записывать их на DVD.

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

Правда запустить копирование архивов на Amazon S3 с ходу не получилось, описание и решение возникших трудностей под катом.

При попытке скопировать данные в хранилище Amazon S3 backup-manager падал с ошибкой типа:

  1. Error reported by backup-manager-upload for method "s3", check "/tmp/bmu-log.kRZndC"

В свою очередь в файле /tmp/bmu-log.kRZndC лежало абсолютно неинформативное сообщение:
  1. The upload transfer "s3" failed.

Но вот в syslog записывались более полезные сообщения:
  1. Mar 12 16:12:26 dom7 backup-manager[26326]: info * Using the upload method "S3".
  2. Mar 12 16:12:26 dom7 backup-manager-upload[28932]: info  * Trying to upload files to s3 service - main::verbose (/usr/bin/backup-manager-upload l. 1000)
  3. Mar 12 16:12:26 dom7 backup-manager-upload[28932]: error * Net::Amazon::S3 is not available, cannot use S3 service : Can't locate Net/Amazon/S3.pm in @INC (@INC contains: /etc/per$
  4. Mar 12 16:12:26 dom7 backup-manager-upload[28932]: error * The upload transfer "s3" failed. - main::verbose_error (/usr/bin/backup-manager-upload l. 1007)
  5. Mar 12 16:12:26 dom7 backup-manager[26326]: error * Error reported by backup-manager-upload for method "s3", check "/tmp/bmu-log.kRZndC".
  6. Mar 12 16:12:26 dom7 backup-manager[26326]: debug * DEBUG: exec_post_command()
  7. Mar 12 16:12:26 dom7 backup-manager[26326]: info * Releasing lock
  8. Mar 12 16:12:26 dom7 backup-manager[26326]: debug * DEBUG: release_lock()

Эти ошибки были устранены после установки пакета libnet-amazon-s3-perl, но копирование на S3 опять работать не захотело, теперь уже с такими сообщениями об ошибках:
  1. Mar 12 16:35:45 dom7 backup-manager[4800]: info * Using the upload method "S3".
  2. Mar 12 16:35:45 dom7 backup-manager-upload[7272]: info  * Trying to upload files to s3 service - main::verbose (/usr/bin/backup-manager-upload l. 1000)
  3. Mar 12 16:35:45 dom7 backup-manager-upload[7272]: error * File::Slurp is not available, cannot use S3 service - main::send_files_with_s3 (/usr/bin/backup-manager-upload l. 1001)
  4. Mar 12 16:35:45 dom7 backup-manager-upload[7272]: error * The upload transfer "s3" failed. - main::verbose_error (/usr/bin/backup-manager-upload l. 1007)
  5. Mar 12 16:35:45 dom7 backup-manager[4800]: error * Error reported by backup-manager-upload for method "s3", check "/tmp/bmu-log.uOcYNB".
  6. Mar 12 16:35:45 dom7 backup-manager[4800]: debug * DEBUG: exec_post_command()
  7. Mar 12 16:35:45 dom7 backup-manager[4800]: info * Releasing lock
  8. Mar 12 16:35:45 dom7 backup-manager[4800]: debug * DEBUG: release_lock()

После установки пакета libfile-slurp-perl пропали и эти ошибки и данные стали корректно копироваться на S3. Ура! Теперь остается добавить запуск бэкап менеджера в cron и можно спать спокойно :)

  • amazon
  • backup
  • linux
  • s3
  • резервное копирование
  • Ромка's blog

можно ли бекапить таким способом на шаред-хостинге?

Сергей (не проверено) → Пт, 04/02/2010 - 17:31

хочу сделать зеркало сайта на другом хостинге

Думаю, зависит от шареда. На

Content Provider (не проверено) → Втр, 05/18/2010 - 16:20

Думаю, зависит от шареда.

На Мастерхосте или nic.ru вам предоставляют доступ по ssh и значит все сможете настроить.
У меня не так навороченно, но бэкапы делает.

Ромка wrote:...архивировать

тролль (не проверено) → Вс, 05/16/2010 - 13:53

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

В Linux нет папок, а есть каталоги (directories), ибо каталог -- такая же запись, как и файл. Папки -- это от лукавого (Билла Гейтса).

я вот решил попробывать

Anonymous (не проверено) → Ср, 05/19/2010 - 13:01

я вот решил попробывать сначала локально протестить как он работает? потом есть виды делать бэкап сервака на свою тачку, но млин затык установил бакап манагер настроил конфиг(пока тока под локальный тест) а как его запускать чтоб делал бэкап? как его засунуть в крон чтоб бэкапил каждую неделю в пятницу?

А черт его знает. Сам ищу уже

Anonymous (не проверено) → Чт, 06/03/2010 - 08:29

А черт его знает. Сам ищу уже полчаса.

крон

Cerber (не проверено) → Втр, 11/09/2010 - 18:11

некропост, но все же, кому то может поможет
на редхатных линуксах, при установке из репозитория, крон-скрипт записывается в:
/etc/cron.daily/backup-manager.cron
чтобы он запускался, нужно в конфиге разрешить запуск:
export BM_DAILY_CRON="true"

и тестится собственно ручным запуском скрипта

Не копирует на s3

Rastler (не проверено) → Чт, 08/12/2010 - 16:43

А может кто знает, у меня начинает копировать и прерывается с ошибкой

:1: parser error : Start tag expected, '<' not found
500 read failed: Соединение сброшено другой сторон
^ at /usr/share/perl5/Net/Amazon/S3.pm line 782

Ставил из портов, система Debian Lenny

Не копирует на s3

Rastler (не проверено) → Чт, 08/12/2010 - 17:46

Проблема в принципе обозначилась, решается

<?php
sudo apt
-get install libperl6-slurp-perl libxml2-dev
sudo cpan XML
::LibXML
sudo cpan Net
::Amazon::S3
?>

но теперь новая, проблема с DateTime::Locale::Base
пишет out of memory, бум разбираться :)
Хотя конечно это не есть хорошо, будаю надо искать более изящное решение, либо писать свое

Новая версия

SHKEd (не проверено) → Пнд, 10/18/2010 - 20:33

В новой версии скрипта исправлена ошибка с S3 (по крайне мере так сказано, я пока не использую S3).

Отлично!

Mihail loban → Ср, 11/10/2010 - 22:17

Юникод или Уникод (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц. Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.

Re: Backup-manager ЂЂЂ настройка резервного...

Бобров Вячеслав (не проверено) → Сб, 02/05/2011 - 19:24

Мне кажется не стоит рубить с плеча и обобщать. Бывает, что сразу вот так скажешь, а потом и жалеешь.

Re: Вот скажите, класно же,

Меховщиков Руслана → Втр, 05/03/2011 - 17:36

Вот скажите, класно же, что такие отличные посты есть в интернете. Автору большое спасибо!

Резервное копирование на веб-сервере

Артур (не проверено) → Вс, 07/31/2011 - 11:18

Я тоже долго пытался найти решение для бекапа своих проектов, чего только я не попробовал, в итоге скрипт наваял - простой)) даже вот тут http://www.artcom-ufa.ru/posts/2011/07/12/rezervnoe-kopirovanie-na-veb-servere статью написал, чтобы не забыть если вдруг.

Вот мой способ для бэкапа.

newzenon (не проверено) → Ср, 09/28/2011 - 00:48

Вот мой способ для бэкапа. http://zenon.sytes.net/rotation-backup/

комментарий к топику

Anonymous → Чт, 10/20/2011 - 23:24

Спортивные эстафеты на любой вкус

Как восстановить данные из бекапа ???

Anonymous (не проверено) → Ср, 12/21/2011 - 00:36

Как восстановить данные из бекапа ???
например полностью или только указанный путь, или за определенную дату (он ведь поддерживает инкрементальность) .

об этом нет ни слова в документации, конфиг файле и в вашей статье.
или вас это совсем не заботит ? :)

пытаюсь найти хоть что-то погуглив но находятся скрипты однофамильцы а по делу ничего...

Обо мне

Всем привет!
Меня зовут
Роман Архаров, я профессиональный веб-разработчик, программирую на языках PHP, Python и Action-Script, в работе использую фреймворки Drupal и Django. В этом блоге я размещаю заметки и статьи, связанные с моей работой, отдыхом и другими интересными мне темами.

Популярные заметки

  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery
  • Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм
  • Темизация Drupal. Часть 4. Темизация Views
  • AJAX. Обмен данными между клиентом и сервером, закачка на сервер файлов без перезагрузки страницы при помощи библиотеки jQuery.
  • Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish
  • Тестирование модуля "Inner poll"
  • Несколько панорам из путешествия по Перу и Боливии
  • Arduino + bluetooth, небольшая проблема
  • Пример разработки плагина для модуля CCK

Подписка


Последние комментарии

  • drupal-admin → Кеширование на Drupal-сайте. Сравнение эффективности встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Var → Отличная статья
  • Меховщиков Руслана → Проверка имени пользователя на наличие букв из разных алфавитов → Re: Читал про это уже на
  • Вероника → Куба. Лето 2008. Часть 3 → По поводу "приветливых жителей" Тринидада
  • Sfero → Статья в PC Magazine/RE. Drupal: разработка модуля → Немного о контенте
  • RemaGe → Статья в PC Magazine/RE. Drupal: разработка модуля → -)
  • Ромка → Статья в PC Magazine/RE. Drupal: разработка модуля → Да, будет сборка, та которую
  • RemaGe → Статья в PC Magazine/RE. Drupal: разработка модуля → -)
  • anatinge → Поездка в Киев → спасибо :)
  • Ромка → Поездка в Киев → Да, в общем-то, ничего
  • GogA → Поездка в Киев → Заинтриговал, что там за

Новые заметки

  • Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish
  • Любопытное поведение модуля syslog в шестом Друпале (баг?)
  • Arduino + bluetooth, небольшая проблема
  • Гугл 1 марта прекратил поддержку сервиса Google Friend Connect
  • Проба пера в HTML5 + canvas. Эффект ластика
  • Шесть рукопожатий
  • Доклад на DrupalConfMoscow 2011
  • Статусы разных сущностей в Друпале 6
  • Футер, прибитый к низу страницы
  • Путешествие по Перу и Боливии. Часть 2

Тэги

Drupal jquery Куба Лето 2007 Лето 2008 Отдых Работа Штуки-дрюки лето модуль статья цитата
еще тэги

Навигация

  • Exchange rate
  • Переход по внешней ссылке
  • Последние сообщения
  • Фотогалереи

Курсы валют

  • 100 Казахстанских тенге — 21,3687 (-0.43)
  • 10 Украинских гривен — 27,2852 (-13.04)
  • 1 Китайский юань — 10,2706 (-40.98)
  • 100 Японских иен — 53,5332 (+12.67)
  • 1 Доллар США — 65,6210 (+33)
  • 1 Евро — 69,8076 (+29.42)
  • 10000 Белорусских рублей — 36,3310 (-2.51)
  • 1 Турецкая лира — 22,9540 (+4.99)

10 случайных заметок

  • Друпал ограничен только способностями разработчика!
  • Цитата
  • Cinnamon Chasers - Luv Deluxe (Music Video)
  • Куба. Лето 2008. Часть 2
  • Разработка сайта на Drupal. Часть 1. Введение.
  • Drupal for Firebug
  • Разработка сайта Drupal.ru
  • Футер, прибитый к низу страницы
  • Кнопки Home, End и Page Up, Page Down в Mac OS
  • Темизация Drupal. Часть 1

Случайные фото

Собака
Гонщик
Осло, Карл Юхан Гате
Дольмен
Я, какой-то дед и местные детишки
Фонтаны в Осло работают даже зимой. Карл Юхан Гате
Недалеко от Красной поляны
В Сингапурском зоопарке. Леопардовая (бенгальская) кошка.
Местный ходок
А это уже полуостров Крым, на пути в Керчь.
Копенгаген, Кристиания, Граффити 6
Крым
Я и мой автопарк :))
Типичная местная женщина
Замок Акерхус вечером
Дорожка
  • Отдых
  • Работа

При использовании материалов с сайта, пожалуйста, ставьте ссылку на источник. E-mail для связи: mne@romka.eu.