Введение.
Продолжая разговор1 об установке и обновлению WordPress, необходимо уделить особое внимание созданию резервной копии WP2. К этому вопросу требуется отнестись серьёзно. На рынке существует несколько плагинов резервирования и восстановления WordPress, которые можно успешно применять в работе. Различные модули плагинов backup/restore используют в своей работе ресурсы Интернет. Ситуации при которых Интернет отсутствует не редки. В статье блога рассматривается локальный способ создания backup/restore для WP и возможности его автоматизации.
Порядок действий.
- Стенд:
- ALT Linux сервер, имя lin-wp; ip-10.0.2.8;
- ALT Simply Linux, имя: lin-sl, IP=10.0.2.33;
- БД MySQL имя: wp
Основные действия при создании архива, выполняются из командной строки при ssh3 соединении с сервером WordPress. Для подключения к серверу WP подойдёт любая рабочая станция Linux. Весь процесс создания резервной копии и восстановления из архива состоит:
- Порядок выполнения:
- создание резервной копии базы данных WP
- создание резервной копии папок и файлов WP
- выполнение автоматизации backup
- проверка архива и восстановление резервной копии
Создание backup БД.
Выполнить инструкцию создания dump4 БД 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(А) WP скопированных во временную папку. На финише программа сжимает всё, что хранится во временном каталоге с помощью архиватора5.
#!/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. Назначить задачу crontab6 для запуска сценария по расписанию один7 раз в неделю.
# 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.
Перед восстановлением необходимо, создать «чистую8» базу для WordPress, стендовое имя БД: wp
- Порядок действия при восстановлении:
- распаковать архив
- удалить, если требуется, папку /var…/wordpress9
- скопировать каталог 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 как описано в этой статье.
Полезные ссылки.
- как установить WordPress Linux
- как установить WordPress Linux
- htaccess защита панели администратора WordPress
- работа сервера Linux Nginx WordPress
Сноски.
- смотри полезные ссылки ↩︎
- WordPress ↩︎
- Secure Shell — безопасная оболочка ↩︎
- файл, включающий в себя содержимое базы данных ↩︎
- используется архиватор tar, для сжатия утилита bzip2, общее название суффикса tar.bz2 ↩︎
- компьютерная программа(демон) в UNIX, для периодического выполнения заданий в определённое время ↩︎
- расписание стенда ↩︎
- имеется в виду новая бд ↩︎
- полный путь корень веб сервера /var/www/html/wordpress ↩︎