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

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


Резервная копия файлов

Создание архива

$ cd ~/
$ tar -zcvf site_backup.tar.gz /var/www/domain.com/public_html

Первая команда вовсе не обязательна.

cd ~/

перекидывает вас в домашнюю директорию. Именно там архив и будет создан.

Далее происходит сама архивация.

tar [-ключи] [имя архива] [путь к файлам]

Непонятно пока только с ключами. Разберем каждый из них:


  • -z (--gzip)

    — архив .gz (gzip);

  • -c (--create)

    — собственно создание архива;

  • -v (--verbose)

    — выводим в терминал листинг файлов, которые будут запакованы;

  • -f (--file)

    — созданный архив сохраняем в файл.

Все встало на свои места. Теперь, когда нужно создать просто

.tar

архив, нужно просто выкинуть ключ

-z

из этого примера:

$ tar -cvf site_backup.tar /var/www/domain.com/public_html

или например:

$ tar -jcvf site_backup.bz2 /var/www/domain.com/public_html
Внимание! Не используйте .ZIP архивы. Они имеют ограничение по размеру в 2Гб.

Распаковка архива

Для распаковки используется все та же команда

tar

, просто с другими ключами:

$ cd /var/www/domain.com/publuc_html
$ tar -xvzf site_backup.tar.gz

Разница в том, что вместо



теперь

-x (--extract)

, который позволяет разархивировать указанный файл

На самом деле все еще проще:

$ tar -vxzf site_backup.tar.gz /var/www/domain.com/public_html

Теперь приступаем к БД.

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

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

Тут одна большая шпаргалка.

-pPASSWORD — не опечатка. пробела нет между ключем и паролем. Например, если у вас пароль

strongPassword

, то нужно будет писать

-pstrongPassword
# USER - ваш пользователь, у которого есть привилегии read
# PASSWORD - пароль пользователя USER
# DATABASE - база, которую вы хотите сохранить в файл

# Создание резервной копии базы DATABASE
mysqldump -u USER -pPASSWORD DATABASE > ~/data_base_backup.sql

# Перенос структуры БД, без данных
mysqldump --no-data - u USER -pPASSWORD DATABASE > ~/data_base_backup.sql

# Создание резервной копии определенных таблиц users и posts
mysqldump -u USER -pPASSWORD DATABASE users posts > ~/data_base_backup.sql

Восстановление базы данных

Для начал нужно создать базу, куда мы будем делать импорт:

mysqladmin -u USER -pPASSWORD create NEWDATABASE

и залить файл

.sql

туда:

mysql -u USER -pPASSWORD DATABASE < ~/data_base_backup.sql

В этих примерах файлы находились в домашней директории

~/

.

Смена прав и владельца для файлов и папок

Для того, чтобы сменить права на папку через терминал, нужно воспользоваться следующей командой:

$ chmod -R 755 /var/www/domain.com/public_html

Права сменятся не только для папки

public_html

, но и для всех вложенных в нее файлов и папок.

Для смены владельца делаем следующее:

$ sudo chown -R www-data:www-data /var/www/domain.com/public_html

После этой команды директория

public_html

будет принадлежать пользователю

www-data

из группы

www-data

.


EnglishRussianUkrainian