3

Я работаю на веб-сайте LAMP в Linux 10.0.4 LTS. Я начинающий системный администратор (хотя я и разработчик), и я ищу несколько советов о том, как лучше всего выполнить резервное копирование для моего сайта. Моя база данных - mySQL, и ВСЕ мои таблицы баз данных используют ядро базы данных InnoDb.

Вот требования к резервному копированию, которое я хочу реализовать:

  1. Включает в себя инкрементные и полные резервные копии базы данных mysql. Я хотел бы иметь ежечасные инкрементные резервные копии, а также ежедневные, еженедельные и ежемесячные резервные копии. Но я не понимаю, какой поворот использовать для этих различных наборов резервных данных, а также как ими управлять ( и что более важно, как восстановить базу данных из набора полных / инкрементных резервных копий за дату)

  2. Я хотел бы сжать и зашифровать данные, чтобы я мог хранить их удаленно (Amazon S3)

  3. Я хочу, чтобы это было полностью автоматизировано (т. Е. Выполнялось как задание cron).

Примечание: мой сервер «безголовый» в том смысле, что на нем не установлено X Window или другой графический интерфейс, поэтому я думаю о создании резервной копии с помощью скрипта bash. В качестве альтернативы, если есть программное обеспечение, которое может помочь мне выполнить резервное копирование такого типа, тогда его нужно запускать из командной строки.

Элементы, которые мне нужны для резервного копирования:

  • база данных mysql
  • файлы сайта (в указанной папке. В идеале я хотел бы оставить некоторые файлы, которые автоматически генерируются)
  • конфигурационные файлы
  • файлы разных данных в разных папках

Вот мои вопросы:

  1. Существует ли какое-либо программное обеспечение, которое я могу использовать для этого, или мне нужно написать свое собственное (скрипт bash)?

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

Если мне придется написать свой собственный сценарий bash (также будучи новичком в bash-сценариях), я буду благодарен, если кто-нибудь сможет предоставить скелетный сценарий, который поможет мне начать.

3 ответа3

3

Я годами использовал rdiff-backup и он стабилен, и вы можете доверять ему. Он делает инкрементные резервные копии всего, что вы ему даете. Поэтому я бы решил вашу проблему с помощью bash-скрипта, сделав следующее:

  1. mysqldump ваша база данных
  2. заархивировать вашу базу данных
  3. rdiff-резервное копирование в удаленное местоположение.

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

Другие могут предложить "rsnapshot", который несколько быстрее, но не сохраняет дельту для файлов, только для папок.

0

Я большой поклонник DAR.

http://dar.linux.free.fr/

У этого есть свои плюсы и минусы, о многих из которых можно прочитать с некоторой любовью Google. Это довольно интенсивно использует процессор (но большинство хороших инкрементных решений), поэтому следует учитывать, находится ли сервер в общей среде (виртуальный хостинг или VPS).

Что касается стратегии, DAR довольно легко реализовать в bash/python с помощью установки CRON. На сайте DAR есть несколько готовых сценариев bash для просмотра и настройки по мере необходимости.

Вы можете загрузить резервную копию DAR и diff-файлы в S3 через множество предварительно созданных приложений S3.

Как всегда, попробуйте несколько решений, чтобы решить, что подходит / лучше всего подходит для ваших нужд.

0

Я управляю 4 очень маленькими сайтами с БД, которые редко меняются. Моя резервная копия - mysqldump 4 базы данных, затем архивирование всего (владелец веб-сайтов использует Windows, поэтому tar не может быть и речи), а затем используйте WGET на машине владельца для их загрузки. Легко, бесплатно и использует стандартные инструменты Linux, которые редко ломаются.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .