Резервное копирование WordPress с помощью mysqldump и tar
Опубликовано: 06.09.2018
Если вы самостоятельно администрируете ваши сайты на WordPress, то выполнять резервное копирование на виртуальных и выделенных серверах можно с помощью системных утилит mysqldump и tar.
Некоторое время назад мы опубликовали подборку плагинов и сервисов для резервного копирования сайтов на WordPress. Если по какой-либо причине они вам не подошли, то мы советуем попробовать резервное копирование вручную с помощью системных утилит на сервере.
Данный способ для более продвинутых пользователей WordPress. Он подразумевает наличие SSH доступа к вашему серверу и базовые навыки работы в командной строке вашей системы, например Terminal.app в OS X или PuTTY для Windows. Параметры подключения к удаленному серверу вы можете уточнить у вашего хостинг-провайдера.
После подключения к удаленному серверу, где находится ваш сайт, перейдите в каталог одним уровнем выше. Например, если сайт находится в директории /home/wpmag/public_html, то работать мы будем в /home/wpmag:
$ ssh [email protected] $ cd /home/wpmagmysqldump: резервная копия базы данных
Специальная утилита mysqldump позволяет выполнять так называемый «дамп» или резервную копию состояния базы данных MySQL. Программа mysqldump входит в пакет mysql-client, который доступен на большинстве Linux-серверах.
Запуск утилиты mysqldump
Для запуска mysqldump вам потребуется логин и пароль к серверу MySQL, название базы данных и адрес самого сервера. Эту информацию можно взять из вашего файла конфигурации WordPress wp-config.php:
$ cat public_html/wp-config.php | grep DB_ define('DB_NAME', 'wordpress'); define('DB_USER', 'username'); define('DB_PASSWORD', 'password'); define('DB_HOST', 'localhost');Таким образом, чтобы создать резервную копию базы данных с названием «wordpress» необходимо запустить mysqldump со следующими параметрами:
$ mysqldump -uusername -ppassword -hlocalhost wordpress > database.sqlОбратите внимание на отсутствие пробелов в аргументах, например -uusername, а не ‑u username. Последним параметром к mysqldump указывается название базы данных. Если вы хотите получить резервную копию всех доступных баз данных на сервере, укажите аргумент --all-databases.
Выполнение этой команды может занять несколько минут, в зависимости от размера вашей базы данных. После ее завершения резервная копия будет хранится в файле database.sql вашей текущей директории.
tar: резервная копия файлов WordPress
Утилита tar используется для создания архивов, которая также имеет возможность сжатия файлов с помощью Gzip. Для создания нового архива с помощью tar необходимо указать название архива и перечень файлов и директорий:
$ tar -czf backup.tar.gz public_html database.sqlОпции czf означают создание архива (-c), использование сжатия Gzip (-z) и запись результата в файл (-f backup.tar.gz). Таким образом будет создан новый архив, содержащий всю директорию public_html и резервную копию базы данных database.sql.
Создание архива может занять некоторое время, в зависимости от количества и размера ваших файлов. После завершения вы можете смело удалить файл database.sql, сжатая копия которого будет располагаться в новом архиве:
$ rm database.sqlСозданный архив можно хранить на сервере на тот случай, если потребуется его быстрое восстановление, но обязательно скачайте архив с резервной копией на ваш компьютер, на тот случай, если сервер станет недоступным. Скачать архив можно с помощью вашего любимого FTP клиента, или используя утилиты scp или rsync.
Полная резервная копия WordPress
После того как вы скачаете резервную копию, проверьте ее размер и содержание. Убедитесь, что все находится на своих местах.
Восстановление данных
Когда настанет время восстановить резервную копию из архива, вам помогут утилиты tar и mysql. Распакуйте архив с резервной копией:
$ tar -xf backup.tar.gzВ том месте где вы распаковали архив вы увидите директорию public_html и database.sql. Если распаковку вы выполняли в том же месте, где и создание архива, то утилита tar вам предложит перезаписать файлы в директории public_html.
Если вы распаковали архив в другом месте, то вам необходимо вручную скопировать или переместить новую директорию public_html на место старой директории, например с помощью утилиты mv. Старую директорию можно предварительно удалить:
$ cd /home/wpmag $ rm -rf public_html $ mv backups/public_html public_htmlПосле восстановления файлов приступайте к восстановлению резервной копии базы данных MySQL. Сделать это можно с помощью утилиты mysql с уже знакомыми нам параметрами:
$ mysql -uusername -ppassword -hlocalhost wordpress Для восстановления всех баз данных из файла database.sql достаточно не указывать последний параметр к mysql: $ mysql -uusername -ppassword -hlocalhost