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

Как делать резервные копии файлов / каталога и базы данных на LAMP ежедневно и автоматически

Есть ли способ автоматически сделать резервную копию всего веб-сайта, включая файлы и базу данных, на LAMP?

phpMyAdmin доступен.

Я хотел бы сохранить заархивированные файлы и базу данных sql в папке над каталогом www, чтобы никто не мог получить к ней доступ в Интернете.

Для этого довольно легко написать сценарий оболочки и вызывать его из cron (если у вас есть доступ к cron). Если у вас нет доступа к cron из-за вашей службы хостинга, вы можете создать секретный файл php, который вы вызываете с другого компьютера, на котором есть cron (я использую Linux дома, чтобы делать такие вещи).

Имейте в виду, что резервная копия на самом деле не является резервной, пока

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

Я создаю резервную копию сайта wordpress, имея сценарий оболочки, состоящий из

#!/bin/sh
mysqldump --opt --user=wordpress wordpress > /backup_1/wordpress.db.transfer
tar cvfz /backup_1/wordpress.tar.gz /www/wordpress

Но затем у меня есть еще один процесс резервного копирования, который копирует / backup_1 по сети на другую удаленную машину.

rsnapshot - отличный инструмент для создания резервных копий всех ваших файлов / папок:

http://www.rsnapshot.org/

В большинстве дистрибутивов Linux для него уже есть пакет. Его очень легко настроить - посмотрите /etc/rsnapshot.conf, в котором есть много комментариев.

Однако для MySQL вам нужно сделать отдельный дамп вашей БД, чтобы избежать копирования несовместимых файлов. AutoMySQLBackup хорошо служил мне в прошлом:

http://sourceforge.net/projects/automysqlbackup/

Его тоже легко настроить. Оба эти инструмента должны запускаться из cron.

Надеюсь это поможет.