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 падал с ошибкой типа:
- Error reported by backup-manager-upload for method "s3", check "/tmp/bmu-log.kRZndC"
В свою очередь в файле /tmp/bmu-log.kRZndC лежало абсолютно неинформативное сообщение:
- The upload transfer "s3" failed.
Но вот в syslog записывались более полезные сообщения:
- Mar 12 16:12:26 dom7 backup-manager[26326]: info * Using the upload method "S3".
- 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)
- 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$
- 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)
- Mar 12 16:12:26 dom7 backup-manager[26326]: error * Error reported by backup-manager-upload for method "s3", check "/tmp/bmu-log.kRZndC".
- Mar 12 16:12:26 dom7 backup-manager[26326]: debug * DEBUG: exec_post_command()
- Mar 12 16:12:26 dom7 backup-manager[26326]: info * Releasing lock
- Mar 12 16:12:26 dom7 backup-manager[26326]: debug * DEBUG: release_lock()
Эти ошибки были устранены после установки пакета libnet-amazon-s3-perl, но копирование на S3 опять работать не захотело, теперь уже с такими сообщениями об ошибках:
- Mar 12 16:35:45 dom7 backup-manager[4800]: info * Using the upload method "S3".
- 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)
- 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)
- 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)
- Mar 12 16:35:45 dom7 backup-manager[4800]: error * Error reported by backup-manager-upload for method "s3", check "/tmp/bmu-log.uOcYNB".
- Mar 12 16:35:45 dom7 backup-manager[4800]: debug * DEBUG: exec_post_command()
- Mar 12 16:35:45 dom7 backup-manager[4800]: info * Releasing lock
- Mar 12 16:35:45 dom7 backup-manager[4800]: debug * DEBUG: release_lock()
После установки пакета libfile-slurp-perl пропали и эти ошибки и данные стали корректно копироваться на S3. Ура! Теперь остается добавить запуск бэкап менеджера в cron и можно спать спокойно :)
можно ли бекапить таким способом на шаред-хостинге?
Сергей (не проверено) → Пт, 04/02/2010 - 17:31хочу сделать зеркало сайта на другом хостинге
Думаю, зависит от шареда. На
Content Provider (не проверено) → Втр, 05/18/2010 - 16:20Думаю, зависит от шареда.
На Мастерхосте или nic.ru вам предоставляют доступ по ssh и значит все сможете настроить.
У меня не так навороченно, но бэкапы делает.
Ромка wrote:...архивировать
тролль (не проверено) → Вс, 05/16/2010 - 13:53В 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Как восстановить данные из бекапа ???
например полностью или только указанный путь, или за определенную дату (он ведь поддерживает инкрементальность) .
об этом нет ни слова в документации, конфиг файле и в вашей статье.
или вас это совсем не заботит ? :)
пытаюсь найти хоть что-то погуглив но находятся скрипты однофамильцы а по делу ничего...