Одной из весьма важных вещей которые вы можете сделать для своей сайта (на дельфине) - автоматическое (периодическое) резервирование базы данных. По обыкновению (особенно для небольших, новых сайтов), данные бэкапы обычно невелики и делаются весьма быстро.
Возможно вы не задумываетесь про это на данный момент, вы просто работаете, улучшаете свой сайт, работаете над раскруткой, но в один прекрасный день чтото может случиться (или по вине хакерской атаки или например ошибкой на хостинге, или что еще хуже - винт начал сыпаться), в этом случае вы сразу понимаете, что недавний бэкап бы спас вас от этой напасти.
Вашему вниманию могу представить достаточно простой скрипт который сохраняет копию БД на хостинге, и вторую копию отправляет вам по электронной почте. Как небольшая рекомендация по настройкам - не используйте электронную почту которая связана с текущим вашим хостингом (так что при любых происшествиях на хостинге вы будете в относительной безопасности). Также, вы можете выбрать частоту бэкапов (в зависимости от ваших предпочтений). Допустим недельный бэкап, ежедневный, или раз в 6-12 часов. Данный скрипт будет запускаться кроном, так что вы всегда сможете настроить время его выполнения. Примеры:
- 0 0 * * * - ежедневно в 12 часов ночи (время - серверное)
- 0 */12 * * * - каждые 12 часов
- 0 0 * * 3 - каждую среду
Данное руководство будет по установке данного скрипта для CPanel. Но думаю для всех других типов хостингов настойка крона будет несложной тоже. Или как альтернатива - используйте SSH (команда crontab -e) для установки кронов.
Ну что - давайте начнем, скачиваем: http://sourceforge.net/project/showfiles.php?group_id=101066
Либо прямо с нашего сайта. Это и есть тот самый шелл скрипт который будет нам помогать. Нам лишь нужно будет его отконфигурировать. Совет, перед установкой данного скрипта - сделайте на всякий случай бэкап базы данных (в phpMyAdmin например) вручную, это поможет если в случае неверной конфигурации или установке ваша база данных повредится.
В самом начала - откройте ваш текущий inc/header.inc.php файл, нас будет интересовать следующие строки:
$db['user'] = 'xxxxx';
$db['passwd'] = 'yyyyy';
$db['db'] = 'zzzzz';
Их нужно будет запомнить где либо, это данные доступа к вашей БД. Далее, если вы скачали SH файл с sourceforge сайта - просто переименуйте данный файл в automysqlbackup.sh. Если же скачали с нашего сайта - файл уже называется так (я переименовывал данный файл от версии 2.5.1). Теперь открываем данный файл в безопасном редакторе (рекомендую Notepad++ или Zend). И,
- Ищем:
# Username to access the MySQL server e.g. dbuser
USERNAME=debian
И меняем на значение имени пользователя нашей БД ($db['user']), т.о. получили
USERNAME=xxxxx
- Далее ищем:
# Password to access the MySQL server e.g. password
PASSWORD=
И меняем на значение пароля пользователя нашей БД ($db['passwd']), т.о. получили
PASSWORD=yyyyy
- Далее обращаем внимание на:
# List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"
DBNAMES="all"
Тут мы указываем имена баз данных которые будут бэкапиться, если желаете все доступные БД - то данный параметр изменять не нужно (тогда вам следует дать доступ вашего пользователя БД к другим базам тоже), иначе, указываем БД ($db['db']), т.о. получили
DBNAMES=zzzzz
- Очередной параметр, ищем:
# Backup directory location e.g /backups
BACKUPDIR="/srv/backup/db"
По данному пути будут ложиться бэкапы базы данных, вам нужно будет определить папку (создать) для хранения данных бэкапов, и, вписать полный путь к данной папке, например
BACKUPDIR="/home/youraccount/db_backups"
Совет! не ложите бэкапы в папку, которая будет доступна по web (т.е. не создавайте папку db_backups в www папке на хостинге), это не позволит злоумышленникам скачать дампы даже зная путь к ним.
- Ну и напоследок - ищем:
MAILADDR="maintenance@example.com"
И меняем на свой email куда будут отсылаться резервные копии
Все, с конфигурацией закончили, давайте закачаем наш SH файл на хостинг (опять же, не в папку www). Допустим он сейчас лежит по /home/youraccount/automysqlbackup.sh
Сейчас мы приступим к установке новой крон задачи для нашего резервирования (для того чтобы бэкап создавался периодически). Для этого заходим в панель, добавляем новую задачу, например:
0 0 * * * /home/youraccount/automysqlbackup.sh
То есть ежедневно ночью. Вы сами себе сможете определить нужное время для выполнения тут. Далее, просто ждем когда наступит данное время, и, мы должны будем получить письмо на электронную почту. Надеюсь у вас все получится с этим. Если какие проблемы - перепроверьте конфигурацию снова по данной инструкции.
Наконец то мы закночили с авто-бэкапами! Если вам нравятся наши статьи - не забываем говорить спасибо :) Всем удачи!