К содержанию

Как сделать резервную копию сайта. Готовое решение.

резервная копия сайтаВсе админы делятся на тех, кто не делает резервные копии и те, кто уже делает. С тех пор как я однажды потерял рабочие версии всех документов из-за краха флешки, я стал относиться ко второй группе. Но делаю резервные копии, только домашних файлов (об этом как-нибудь в другой раз). И вот наконец-то дошли руки до резервной копии сайта. Подкатом описание моей системы копирования данных с хостинга.

 

Итак, для создания копии у нас есть два варианта: воспользоваться тем, что дает хостер и сделать что-то свое. Часто хостинг компании предоставляют панель управления, из которой можно загрузить текущие резервные копии. Но у некоторых это делать крайне неудобно. Так на джино для создания копии придется потратить минут 10-15. Но есть компании, которые вообще не предоставляют каких-либо возможностей для загрузки резервки. К таким, в частности, относится всеми известный мастерхост (копии у них есть, но доступны они только админам хостинга). Поэтому сегодня я расскажу, как организован процесс резервного копирования моих сайтов на мастерхосте. По аналогии можно сделать резервки с любого другого хостинга.

Итак, для работы нам понадобиться: SSH (без него вообще никак), cron (можно обойтись, но никакой автоматизации), любая качалка файлов и прямые руки с трезвой головой.

Простая копия сайта

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

Резервная копия базы делается простой командой

mysqldump -u {userName} -p{userPassword} -h {baseHost} --all-databases > all-databases.sql

Где вместо {userName} подставляем логин доступа к базе, вместо {userPassword} пароль доступа к базе, а вместо {baseHost} хост (как правило, localhost). Обратите внимание, что между -p и {userPassword} нет пробела, а между -u и {userName} есть. Это важно!

Эта команда создаст резервную копию всех баз данных, доступных данному mysql пользователю в файл all-databases.sql. Если ваши базы разнесены по пользователям, то придется сделать копии для каждого пользователя. Только не забудьте разнести копии по разным файлам. Я делаю копию прямо в домашнюю директорию /home/u1111/, что бы потом можно было засунуть ее в резервную копию всех файлов.

Для создания резервной копии файлов используем следующую команду

tar -zcvf {fileName} {dirName}

Где вместо {fileName} подставляем название файла (у меня тут стоит home.tar.gz), а вместо {dirName} директорию, где у вас лежат все сайты (у мастерхоста это /home/u1111/ или $HOME)

Файл с резервкой будет создан в том каталоге, где вы сейчас находитесь. Для создания в другом каталоге, просто пропишите вместо {fileName} полный путь до файла.

Если вы все сделали правильно и при этом сложили резервную копию базы в корень сайта, то в файле {fileName} вы получите полную копию, включая базу данных. Затем сливаем ее по ФТП и храним в укромном месте до часах Х.

Автоматизируем резервное копирование

Но мне этого было мало. Хочется что бы резервное копирование было чуток быстрее и автоматом. Для этого будем использовать крон и простой скрипт.

Для этого создаем файл rcopy.sh и прописываем в него все строчки для резервного копирования базы и файлов (см. их выше). С одним условием, резервное копирование файлов настраиваем в любую директорию доступную из вне. Делается это для того, что бы потом можно было вытянуть архив с помощью качалки напрямую, минуя ФТП (хотя современные качалки умею качать и с ФТП).

Далее этот файл просто скармливаем крону в виде строки:

sh rcopy.sh

Настраиваем резервное копирование на каждую ночь с воскресенья на понедельник (можно и чаще, но имхо незачем). А в качалке настраиваем расписание выкачивания этого файла (или качаем каждый понедельник вручную). Вуаля, все готово. Теперь у вас всегда под рукой резервная копия недельной давности. Если хостингов несколько, то и резервок будет несколько. Главное разнести эти копии по разным файлам.

P.S. Возможно есть более оптимальный способ резервного копирования и я его не знаю. Поделитесь?

Кирилл, 20.05.2011

Ваш отзыв

Заполните форму и нажмите «Отправить».

Отзывы

Скажите нам, что вы думаете.

Комментариев пока нет.

Результат под ключ! Честные цены! межевание жилого дома Юрист по земельным вопросам