Автоматическое резервное копирование сайта

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

Основы cron

В операционных системах семейства Linux предусмотрен специальный планировщик задач – cron.

Он позволяет выполнять различные задачи, в назначенное время. В том числе периодически, что удобно для задач администрирования.

Список задач, cron которые должен регулярно выполнять находится в файле crontab. Для того чтобы отредактировать файл crontab нужно выполнить команду:

Если до этого crontab ранее ни разу не редактировался, в терминале сначала появится меню выбора редактора и только после этого откроется сам crontab.

Задачи описываются в contab в виде строк специального формата. Одна строка соответствует одной задаче.

Формат описания задачи состоит из шести параметров разделяемых пробелами. Из них первые пять задают периодичность выполнения задачи (расписание), а шестой описывает непосредственно саму задачу в виде команды консоли.

Параметры расписания и их допустимые значения:

  1. Минуты.
    От 0 до 59;
  2. Часы.
    От 0 до 23;
  3. День месяца.
    От 1 до 31
  4. Месяц.
    От 1 до 12 или первые три буквы англоязычного названия месяца (например, январь – jan);
  5. День недели.
    От 0 до 6 или первые три буквы англоязычного названия дня недели (например, воскресенье – sun). При этом первым днём недели (соответствует числу 0) считается воскресенье.

В любом из перечисленных параметров также можно использовать символ «*», что означает «каждый».

Пример описания задачи cron, которая должна выполняться каждый вторник в 10 часов 25 минут утра:

После того как в crontab  прописаны все задачи его нужно сохранить, закрыть редактор и обязательно проверить были ли сохранены изменения.

Для этого служит команда

Она открывает файл crontab в режиме «только для чтения».

Если две и более задачи будут назначены на одно и то же время ничего страшного не произойдёт. При наступлении назначенного времени cron просто запустит соответствующие команды и всё.
Все манипуляции с файлом crontab требуют административных привилегий (root/sudo).
Резервное копирование файлов

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

Формат команды:

Ниже приведён пример описания задачи cron для ежедневного автоматического создания резервных копий сайта по умолчанию apache в 3 часа ночи.

Резервное копирование базы данных

Точная реализация автоматического резервного копирования базы данных сайта зависит от используемой СУБД. Ниже приведён пример создания резервной копии базы данных MySQL, как наиболее распространённой СУБД.

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

Пример описания задачи cron для ежедневного автоматического резервного копирования базы данных MySQL в 3 часа ночи.

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

Однако как бы ни был хорош cron, он всё равно не может полностью исключить необходимость ручного копирования.

Сайт или его база данных может иметь очень большой размер, что делает слишком частое создание резервных копий затруднительным, так как на это может потребоваться значительное время. При этом изменения вносимые разработчиками могут иметь непредсказуемые последствия.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *