Назад | Перейти на главную страницу

Решение для автоматического резервного копирования выделенного сервера

У меня есть выделенный веб-сервер Ubuntu в облачной среде, и я ищу хороший способ делать автоматические резервные копии.

Я хотел бы сделать резервную копию некоторых каталогов с веб-приложениями и всех моих баз данных MySql. Что касается места назначения: делайте снимки каждые два часа локально и каждые шесть часов на удаленный ftp-сервер. Также удалите архивы резервных копий старше семи дней (localy + ftp) и уведомите о любых проблемах по электронной почте.

Теперь, чтобы реализовать некоторые из этих функций, я использую сценарий оболочки cron + и http://www.mysqldumper.net/, но на самом деле это не отвечает моим потребностям. Mysqldumper не знает автоматически о новых базах данных, а сценарий оболочки не уведомляет о проблемах. Это то, что я должен проверять время от времени, и у меня нет доверия.

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

У нас похожая ситуация, и мы используем automysqlbackup (вместо mysqldumper, как в вашем случае) и rsnapshot. Automysqlbackup также может проинформировать вас по электронной почте.

На самом деле я использую rsnapshot для резервного копирования. Он не может создавать резервную копию самой базы данных mysql, но позволяет выполнять сценарии до и после резервного копирования. Итак, перед выполнением rsnapshot:

 /usr/bin/ssh remote_host 'mysql -N -e "SHOW DATABASES;" | while read db; do mysqldump --skip-comments $db |gzip > ~/db/${db}.sql.gz; done'

все настройки mysql хранятся в ~ / .my.cnf, и после завершения резервного копирования rsnapshot выполняет сценарий для удаления дампа на удаленном хосте.

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

Rsnapshot использует rsync для передачи данных, поэтому он более безопасен, чем ftp.

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

Решение, которое я предлагаю, - использовать инструменты командной строки для выполнения шагов, а затем склеить их все вместе с помощью языка сценариев, такого как Perl или Python, чтобы сделать его единым процессом, запускаемым cron. Вы можете перехватить возвращаемые значения подпроцесса в своем скрипте и предпринять соответствующие действия. Вы можете вести журнал как угодно и даже можете добавить в свой сценарий шаги проверки и тест восстановления. Я бы доверял такому решению больше, чем приложению на основе графического интерфейса.

Раньше я использовал сценарии оболочки для резервного копирования, но я отказался, так как в конечном итоге их невозможно было поддерживать. я использую Bacula - решение для резервного копирования и восстановления сети с открытым исходным кодом. Как только я заработал, я больше не оглядывался. Он должен делать все, что вам нужно, и даже больше (я не буду перечислять здесь все функции, поскольку уверен, что с Google можно найти лучшие руководства).

Bacula отправит вам по электронной почте резервные отчеты об успехе или неудаче. Вы можете установить сложное расписание для полного и инкрементного резервного копирования. Вы можете распределить резервные копии на несколько томов на нескольких носителях. Серверы и системы хранения могут работать на разных машинах отдельно от клиентов.

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

Я использую комбинацию Backupninja и двуличие для бэкапов моего сервера. Backupninja имеет возможность резервного копирования баз данных MySQL. Duplicity создает инкрементные резервные копии (необязательно зашифрованные) с использованием алгоритма, аналогичного rsync, и может передавать резервные копии с использованием ряда протоколов (таких как SCP / SFTP, FTP, WebDAV или хранение в Amazon S3).

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