Как сделать backup WordPress.

Введение.

Продолжая разговор установки и обновления WordPress, необходимо уделить особое внимание созданию резервной копии WP. К этому вопросу требуется отнестись серьёзно. На рынке существует несколько плагинов резервирования и восстановления WordPress, которые можно успешно применять в работе. Модули плагинов backup/restore используют дополнительные ресурсы для подключения к Интернет и затрудняют контроль процессов Backup. В статье блога рассматривается ручной способ создания backup и возможности его автоматизации.

Порядок действий.

Основные действия при создании архива, выполняются из командной строки при ssh соединении с сервером, где работает WordPress. Для подключения к серверу WP подойдёт любая рабочая станция Linux. Весь процесс создания резервной копии и восстановления из архива состоит:

  • создание резервной копии базы данных WP
  • создание резервной копии папок и файлов WP
  • выполнение автоматизации backup
  • проверка архива и восстановление резервной копии
  • Стенд:
    • ALT Linux сервер, имя lin-wp; ip-10.0.2.8;
    • Альт Рабочая станция, имя: lin-kde, IP=10.0.2.33;
    • БД для WordPress имя: wp

Создание backup БД.

Выполнить инструкцию создания dump БД WordPress.

# cd /home
# mysqldump -uroot -pwordpress wp > wp_db.sql

В каталоге /home создаётся dump, wp_db.sql.

Backup папок и файлов WordPress.

Создание архива файлов WordPress в каталоге /home, по дате создания.

# cp -r /var/www/html/wordpress /home
# cd /home
# tar -cjf wp_`date +%d`_back.tar.bz2 wordpress
# ls 
# wp_16_back.tar.bz2

Автоматизация backup WordPress

Программа, bkwp, поможет автоматизировать процесс резервного копирования WP. Скрипт последовательно выполняет backup, создаёт dump БД, копирует файлы и каталоги во временную папку.

#!/bin/bash
TEMPDIR=/bkwp/
BACKUPDIR=/home/
mkdir -p $TEMPDIR
# Стор Apache2.
systemctl stop httpd2
# Стоп mysql
systemctl stop_mysqld
# dump MySQL.
mysqldump -uroot -pwordpress wp > $TEMPDIR/wp.sql
# Старт Apache2.
systemctl start httpd2
# Старт MySQL.
systemctl start mysqld
# Копировать каталоги и файлы WP.
cp -r /var/www/html/wordpress $TEMPDIR
# Сжать указав день создания.
tar -cjf $BACKUPDIR/wordpress_`date +%d`_back.tar.bz2 $TEMPDIR
# Удалить временный каталог
rm -rf /bkwp

Создаётся файл с указанием дня даты создания архива.

# ls
...
wordpress_19_back.tar.bz2

После распаковки архива, появляется папка wordpress и dump wp.sql.

# tar xvf wordpress_data_back.tar.bz2
# ls -l bkwp
...
drwxr-xr-x... wordpress
-rw-r--r--... wp.sql

Скрипт, bkwp, нужно поместить в /usr/local/bin, назначить crontab задачу по расписанию запуска, один раз в неделю.

# crontab -e
minute (0-59),
| hour (0-23),
| | day of the month (1-31),
| | | month of the year (1-12),
| | | | day of the week (0-6 with 0=Sunday).
| | | | | commands
00 00 * * 0 bkwp

Restore Backup.

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

Перед восстановлением необходимо, создать «чистую» базу для WordPress, стендовое имя БД: wp

  • распаковать архив
  • удалить, если требуется, папку /var…/wordpress
  • скопировать каталог wordpress из архива в /var…/wordpress
  • восстановить БД
  • проверить БД
home]# tar xvf wordpress_data_back.tar.bz2
home]# rm -rf /var/www/html/wordpress
home]# cd bkwp
bkwp]# cp -r wordpress /var/www/html/wordpress
bkwp]# mysql -uroot -pwordpress wp < wp.sql
# mysqlcheck -uroot -pwordpress  --auto-repair --check --all-databases

Заключение.

К вопросу резервного копирования и восстановления надо подойти серьёзно. По мере наполнения сайта информацией, возрастает ответственность администратора за сохранность материала. На работу WordPress могут влиять различные факторы техногенного характера. Хорошая и проверенная резервная копия гарантирует надёжную работу сайта. Не ленитесь, смоделируйте на стенде технологический процесс Buckup/Restore, в дальнейшим это выручат при сбоях в работе оборудовании. Копии архивов храните на отдельных сетевых устройствах предприятия. Отслеживайте количество архивных копий, удаляйте старые, предупреждая этим от переполнение дисковую систему. Автоматизировать процесс удаления старых архивов WordPress, можно используя инструкцию delkb, прочитав эту статью.