Backup сайта и базы данных MySQL на ubuntu 16.04

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
126
Всем привет! Заранее подготовился и перечитал статьи, но из-за недостатка опыта, не уверен, что правильный сценарий.
Система: Ubuntu 16.04, MySQL 5.7, Nginx 1.10, PHP 7.
Необходимо сделать полный бэкап, чтобы в случае проблемы или переноса на другой сервер восстановить сайт.

Прошу подсказать правильное ли решение:

1. Копирую папку с VDS в которой установлен сайт /www/domain.ru/hml через файлзиллу себе на ПК.
2. Делаю резервную копию существующей базы данных под названием domain_ru:
Код:
mysqldump -u username -p domain_ru > domain_ru_backup.sql
И когда потребуется восстановить сайт и базу данных, если она отсутствует или повреждена, то:
1. На сервер заливаю папку /www/domain.ru/hml
2. Удаляю базу данных domain_ru, потом создаю новую с таким же именем.
3. Восстанавливаю базу данных командой:
Код:
mysql -u username -p domain_ru < domain_ru_backup.sql
Если неверно, напишите, пожалуйста, как правильно.
 
Последнее редактирование:

nejtr0n

Гуру форума
Регистрация
24 Янв 2014
Сообщения
129
Реакции
81
Для экономии времени можете заархивировать папку сайта через ssh, и скачать архив.
Код:
tar cvfz site.tar.gz /var/www/html
 

Kub

Мой дом здесь!
Регистрация
5 Июн 2009
Сообщения
624
Реакции
485
Базу тоже лучше архивировать

Код:
mysqldump -u пользователь -p имя_базы_данных | gzip > имя_файла_резервной_копии.sql.gz

Экспортный файл базы данных будет создан в каталоге в котором вы находитесь. Можно указать путь до нужного каталога при сохранении
Например сохраняем в каталог srv
Код:
mysqldump -u пользователь -p имя_базы_данных | gzip > /srv/имя_файла_резервной_копии.sql.gz
 

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
126
Подскажите, пожалуйста, как сделать так, чтобы архив создавался только одной конкретной папки? А то при команде
tar cvfz site.tar.gz /var/www/html
архивируется всё дерево папок /var/www/html
И потом когда нужно распаковать только html в /var/www/,
На деле получается: /var/www/var/www/html
 

Ruflex

Создатель
Регистрация
8 Апр 2008
Сообщения
15
Реакции
4
Архивировать нужно из папки html . Заблаговременно перейдя в нее
cd /var/www/var/www/html

Я привык работать с Midnight Commander(apt-get install mc или yum install mc). Очень удобно и наглядно. Архивировать можно из быстрого меню по кнопке F2
 

Sylon

Постоялец
Регистрация
1 Мар 2015
Сообщения
322
Реакции
126
Архивировать нужно из папки html . Заблаговременно перейдя в нее
cd /var/www/var/www/html

Я привык работать с Midnight Commander(apt-get install mc или yum install mc). Очень удобно и наглядно. Архивировать можно из быстрого меню по кнопке F2
Из неё архивирую, причем перепробовал разные варианты, так и не нашёл вариант как заархивировать одну конкретную папку. Если указывать путь к папке, значит в архиве будут все папки этого пути. В независимости где ты находишься.
 

Ruflex

Создатель
Регистрация
8 Апр 2008
Сообщения
15
Реакции
4
Попробуй Midnight Commander это удобно
 

sys64

Создатель
Регистрация
19 Дек 2016
Сообщения
45
Реакции
15
Я бы рекомендовал добавить создание архивов в крон и делать бекапы ежедневно, что-то вроде:
Код:
/usr/local/bin/mysqldump -p --default-character-set=utf8 --skip-set-charset --single-transaction
имя_базы_данных
> /var/backups/имя_базы_данных-`date +%u`.sql  (мне сжимать не нужно, не указан явно пароль)
/bin/chmod 600 /var/backups/имя_базы_данных-`date +%u`.sql
date +%u - день недели цифрой.

Ну и для файлов:

Код:
#!/bin/sh

LANG=ru_RU.UTF-8

tar zcf /var/backups/сохраняемое_имя-`date +%u`.tgz /usr/local/www/сохраняемое_имя/
chmod 600 /var/backups/сохраняемое_имя-`date +%u`.tgz

ну и выкачивать эти архивы как-нибудь rsync/scp/...
 
Сверху