Небольшая шпаргалка, посвященная созданию резервной копии сайта через терминал Linux. Ну и заодно посмотрим как этот бекап потом восстановить через тот же терминал.
Резервная копия файлов
Создание архива
$ cd ~/
$ tar -zcvf site_backup.tar.gz /var/www/domain.com/public_html
Первая команда вовсе не обязательна.
cd ~/
перекидывает вас в домашнюю директорию. Именно там архив и будет создан.
Далее происходит сама архивация.
Непонятно пока только с ключами. Разберем каждый из них:
-
-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
Распаковка архива
Для распаковки используется все та же команда
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
Теперь приступаем к БД.
Резервная копия базы данных
Создание резервной копии базы данных
Тут одна большая шпаргалка.
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
.