Ромка!eu

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

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

  • Просмотреть
  • Голоса

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

888
points

Настраиваю сейчас под свои веб-девелоперские нужды сервер на основе 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
  • Quote

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

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

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

  • ответить
  • quote
  • 1 point

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

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

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

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

  • ответить
  • quote
  • -2 points

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

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

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

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

  • ответить
  • quote
  • -26 points

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

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

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

  • ответить
  • quote
  • -6 points

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

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

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

  • ответить
  • quote
  • -25 points

крон

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

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

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

  • ответить
  • quote
  • -4 points

Не копирует на 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

  • ответить
  • quote
  • -12 points

Не копирует на 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, бум разбираться :)
Хотя конечно это не есть хорошо, будаю надо искать более изящное решение, либо писать свое

  • ответить
  • quote
  • -10 points

Новая версия

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

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

  • ответить
  • quote
  • 0 points

Отлично!

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

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

  • ответить
  • quote
  • -20 points

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

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

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

  • ответить
  • quote
  • -25 points

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

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

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

  • ответить
  • quote
  • -33 points

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

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

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

  • ответить
  • quote
  • -10 points

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

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

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

  • ответить
  • quote
  • -18 points

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

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

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

  • ответить
  • quote
  • -16 points

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

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

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

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

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

  • ответить
  • quote
  • -6 points

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать тэг <code></code> для подсветки синтаксиса программного кода. The supported tag styles are: <foo>, [foo].
  • You may quote other posts using [quote] tags.

Подробнее о форматировании

CAPTCHA
Если вы человек, а не робот, то введите текст с картинки. Если вы робот, то велкам ту майкрософт.ком.

Обо мне

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

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

  • AJAX. Обмен данными между клиентом и сервером, закачка на сервер файлов без перезагрузки страницы при помощи библиотеки jQuery.
  • Темизация Drupal. Часть 1
  • Темизация Drupal. Часть 2. Анатомия темы оформления Drupal
  • Кнопки Home, End и Page Up, Page Down в Mac OS
  • Пример разработки плагина для модуля CCK
  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Разработка модуля для Drupal. Часть1. Введение
  • Разработал модуль "Адаптивное меню" для Drupal 6
  • Модуль скидок для электронного магазина работающего на Drupal + eCommerce
  • Несколько панорам из путешествия по Перу и Боливии

Подписка


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

  • Oz → Швабрашвабр2 → слабовато для
  • loan → Вращение изображений при помощи Javascript → answer this topic
  • CopelandLacey33 → Доставка → reply this post
  • vitsss → Авторизация на Drupal-сайте с помощью аккаунта вКонтакте → hostinh nic.ru and vk api
  • dimasikov → Автоматическая "газетная" верстка (верстка в несколько колонок) → Я похожее делал для с этим
  • max2012 → Разработка сайта на Drupal. Часть 2. Архитектура Drupal. → Подвесные потолки Опосля
  • Антон → Темизация Drupal. Часть 4. Темизация Views → Отлично!
  • Itsmypersonal → Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 2 — Пхукет → Пхукет - да!
  • Sheldon → Перетаскивание ячеек таблицы. Table drag and drop — плагин для jQuery → Здравствуйте! Подскажите
  • Sheldon → Home sheep home → Одна из тех игр в которые

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

  • Проба пера в HTML5 + canvas. Эффект ластика
  • Шесть рукопожатий
  • Доклад на DrupalConfMoscow 2011
  • Статусы разных сущностей в Друпале 6
  • Футер, прибитый к низу страницы
  • Путешествие по Перу и Боливии. Часть 2
  • Путешествие по Перу и Боливии. Часть 1
  • Несколько панорам из путешествия по Перу и Боливии
  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Home sheep home

Тэги

dckyiev09 Drupal jquery Боливия Отдых Перу Работа Штуки-дрюки зима 2010 модуль статья темизация
еще тэги

Вход для пользователей

Что такое OpenID?
  • Войти по OpenID
  • Скрыть вход по OpenID
  • Зарегистрироваться
  • Запросить новый пароль

Навигация

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

Курсы валют

  • 100 Казахских тенге — 20,1498 (+0.15)
  • 10 Украинских гривен — 37,2360 (+0.27)
  • 10 Китайских юаней — 47,4699 (+0.32)
  • 100 Японских иен — 38,4888 (+0.04)
  • 1 Доллар США — 29,8923 (+0.21)
  • 1 Евро — 39,6282 (+0.15)
  • 10000 Белорусских рублей — 36,1892 (+0.39)
  • 1 Турецкая лира — 16,9602 (-0.06)

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

  • Семинар по хапкидо в Днепропетровске
  • Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery
  • Май 2006. Сочи, Адлер, Геленджик, Анапа, Керчь, Судак, Ялта, Севастополь.
  • Темизация Drupal. Часть 1
  • Шесть рукопожатий
  • Tagnetic — холодильник тэгов
  • Вспомнил детство
  • Невероятный битбокс от Dub FX и Woodnote
  • Модуль скидок для электронного магазина работающего на Drupal + eCommerce
  • Понедельник начинается в субботу

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

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

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