Home > Создание и монетизация сайтов > Резервное копирование сайтов > Методы резервного копирования сайтов

Методы резервного копирования сайтов

В этой статье я коротко охарактеризую методы, с помощью которых можно снять бэкапы своих сайтов.Ввиду того, что наибольшее распространение сейчас имеют сайты на CMS, использующих базы данных, в статье будет рассматриваться варианта бэкапа связки «сайт-база данных».
Все методы бэкапов сайтов можно разделить на рациональные и нерациональные.

К нерациональным методам относится использование phpMyAdmin и иных программных средств для создания копии базы данных и скачивание по FTP, к рациональным — использование встроенных возможностей хостинга (в данной статье речь пойдёт об использовании средств Unix-подобных систем на примере FreeBSD).
Делать дамп баз данных и скачивать сайты через FTP пользователей, как правило, заставляют, следующие факторы:
1) отсутствие доступа к shell;
2) техническая неосведомлённость пользователей;
3) низкие объёмы данных, подлежащих резервному копированию.
Рассматривать копирование базы данных через phpMyAdmin и скачивание по FTP я рассматривать не буду, так как это — базовые знания, которые легкодоступны в разных уголках Рунета. Замечу лишь, что копирование баз данных значительного объёма лучше осуществлять утилитами семейства SypexDumper, так как phpMyAdmin в ряде случаем неспособен создать бэкап большой базы данных ввиду превышения времени выполнения скрипта, установленного на сервере.

*   *   *

Теперь рассмотрим ситуацию, когда у Вас есть shell-доступ. Для работы через shell Вам потребуется клиент типа Putty. Заходим на сервер через него и для бэкапа своего сайта вводим определённые команды, которые будут приведены ниже. Обратите внимание на то, что текст (после Ваших правок) можно выделить и вставить в терминал Putty целиком и лишь в конце нажать enter, чтобы выполнилась последняя строка.

# Переходим в папку пользователя, где будем создавать бэкапы
cd /home/имя_пользователя/data/
# Создаём папку, в которую будем складывать бэкапы. В дальнейшем эту и предудущую команды выполнять не следует, если Вы не будете удалять папку backup.
mkdir backup
# Переходим в папку для бэкапов.
cd /home/имя_пользователя/data/backup/
# В ней создаём временную папку, в которую будем загружать неархивированную копию базы данных.
mkdir bases
# Далее создаём копию базы данных.
/usr/local/bin/mysqldump -uимя_пользователя_базы_данных -pпароль_баз_данных наименовение_базы_данных > /home/имя_пользователя/data/backup/bases/`date +%Y-%m-%d`наименовение_базы_данных.sql
# Архивируем базу данных в папку backup.
tar czf /home/имя_пользователя/data/backup/`date +%Y-%m-%d-%H-%M-%S`-наименовение_базы_данных.tgz /home/имя_пользователя/data/backup/bases/
# Удаляем временную папку bases с содержимым.
rm -r bases
#Создаём бэкап файлов сайта.
tar czf /home/имя_пользователя/data/backup/`date +%Y-%m-%d-%H-%M-%S`-наименование_сайта.tgz /home/имя_пользователя/data/www/домен_сайта

Зайдя по FTP под тем пользователем, для которого создавалась папка backup, можно быстро загрузить архивы по FTP.
Однако, может получиться так, что сервер рухнет целиком, вместе с бэкапами. С целью предупреждения утери сайта можно предусмотреть бэкап по ftp на другой сервер. Для этого потребуется не просто набор команд, а специальный BASH-скрипт, часть которого уже рассмотрена.
Создаём на сервере в какой-нибудь папке (пусть будет root) файл backup.sh. Он будет иметь такую структуру:

#!/bin/sh
# Переходим в папку пользователя, где будем создавать бэкапы
cd /home/имя_пользователя/data/
# Создаём папку, в которую будем складывать бэкапы. В дальнейшем эту и предудущую команды выполнять не следует, если Вы не будете удалять папку backup. Либо оставьте эти строки, если, погрузив бэкап по FTP на сторонний сервер, Вы удаляете папку backup!
mkdir backup
# Переходим в папку для бэкапов.
cd /home/имя_пользователя/data/backup/
# В ней создаём временную папку, в которую будем загружать неархивированную копию базы данных.
mkdir bases
# Далее создаём копию базы данных.
/usr/local/bin/mysqldump -uимя_пользователя_базы_данных -pпароль_баз_данных наименовение_базы_данных > /home/имя_пользователя/data/backup/bases/`date +%Y-%m-%d`наименовение_базы_данных.sql
# Архивируем базу данных в папку backup.
tar czf /home/имя_пользователя/data/backup/`date +%Y-%m-%d-%H-%M-%S`-наименовение_базы_данных.tgz /home/имя_пользователя/data/backup/bases/
# Удаляем временную папку bases с содержимым.
rm -r bases
#Создаём бэкап файлов сайта.
tar czf /home/имя_пользователя/data/backup/`date +%Y-%m-%d-%H-%M-%S`-наименование_сайта.tgz /home/имя_пользователя/data/www/домен_сайта

# Итак, у нас есть полный бэкап сайта. Теперь нужно загрузить его на сторонний сервер по FTP.

# Имя пользователя FTP
USERNAME="username"
# Пароль от FTP
PASSWORD="pass"
# Сервер FTP.
SERVER="255.255.100.100"
# Папка на Вашем сервере, откуда будут копироваться бэкапы
FILE="/home/имя_пользователя/data/backup"
# Папка на стороннем FTP сервере, куда будут копироваться бэкапы.
BACKUPDIR="/backup"

ftp -n -i -p $SERVER << EOF
user $USERNAME $PASSWORD
cd $BACKUPDIR
lcd $FILE
mput *
quit

EOF

# Удаляем папку backup со всем содержимым. Использовать по усмотрению.
cd /home/имя_пользователя/data/
rm -r backup</p>

Чтобы запустить этот скрипт, нужно выполнить команды:

cd /root/
./backup.sh

Кроме того, можно запкускать задание через Cron. Например, каждые 6 часов.

Для редактирования заданий cron запускаем терминал putty и набираем команду


crontab -e

После этого Вы окажетесь в текстовом редакторе vi.

Краткая справка по командам:

  • для вставки текста нажмите i (правка до курсора), затем вводите текст;
  • a — редактирование после курсора;
  • для удаления символов нажмите ESC, а затем наберите x
  • для выхода из vi без сохранения изменений нажмите ESC, а затем наберите :q!
  • для сохранения и выхода нажмите ESC, а затем наберите :wq

Каждое задание пишется на новой строке. После каждой строки обязательно нажать enter.

Вот так выглядит запуск скрипта резервного копирования каждые 6 часов через cron:

0         */6         *         *         *         /root/backup.sh >/dev/null 2>&1

Внимание! В случае, если Вы оставите на первом месте звёздочку, то скрипт будет запускаться через каждые 6 часов каждую минуту! Поэтому необходимо заменить значение на ноль.

Вот и всё! Теперь можно не беспокоиться о сохранность своих проектов.

+1
0
  

19.08.2012 · Алексей · Один комментарий Просмотров: 744
Метки: , , , , ,  · Рубрики: Резервное копирование сайтов

Один комментарий

  1. Евгений - 29.08.2012

    То, что нужно по резервному копированию сайтов! Добавил в закладки.

    Like or Dislike: Thumb up 1 Thumb down 0