unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-daily-backup-scripts-for-mysql-databases-and-wordpress-phpbb-dokuwiki-sites
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-daily-backup-scripts-for-mysql-databases-and-wordpress-phpbb-dokuwiki-sites [26.03.2016 23:18] – создано Алексей Максимов | unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-daily-backup-scripts-for-mysql-databases-and-wordpress-phpbb-dokuwiki-sites [06.04.2016 15:05] – Алексей Максимов | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 12. Настройка скриптов резервного копирования сайтов и баз данных MySQL ===== | ===== Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 12. Настройка скриптов резервного копирования сайтов и баз данных MySQL ===== | ||
+ | В это части мы рассмотрим пример настройки простых скриптов для выполнения регулярного резервного копирования корневых папок сайтов и баз данных MySQL на [[: | ||
+ | |||
+ | \\ | ||
+ | ==== Резервное копирование баз данных MySQL ==== | ||
+ | |||
+ | [[: | ||
+ | |||
+ | Для начала нам нужно будет освежить в памяти список баз MySQL, которые мы будем подвергать резервному копированию. Отталкиваемся от того условия, | ||
+ | |||
+ | Переходим в режим суперпользователя, | ||
+ | |||
+ | < | ||
+ | mysql | ||
+ | mysql > show databases;</ | ||
+ | |||
+ | Вывод будет примерно таким: | ||
+ | |||
+ | < | ||
+ | +---------------------+ | ||
+ | | Database | ||
+ | +---------------------+ | ||
+ | | information_schema | ||
+ | | blog-db | ||
+ | | forum-db | ||
+ | | testsite-db | ||
+ | | # | ||
+ | | lost+found | ||
+ | | mysql | | ||
+ | | performance_schema | ||
+ | +---------------------+ | ||
+ | 7 rows in set (0.00 sec) | ||
+ | </ | ||
+ | |||
+ | |||
+ | Определившись со списком баз, которые мы будем подвергать резервному копированию, | ||
+ | |||
+ | Создаём каталог для сохранения резервных копий БД и сразу ограничиваем к нему доступ: | ||
+ | |||
+ | < | ||
+ | sudo chmod 700 / | ||
+ | |||
+ | Создаём скрипт резервного копирования: | ||
+ | |||
+ | < | ||
+ | |||
+ | Наполняем его содержимым: | ||
+ | |||
+ | <file bash backup-databases.sh> | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | # Verify directory structure exists prior to running this job | ||
+ | # | ||
+ | BackUpDIR="/ | ||
+ | TimeStamp=$(date +" | ||
+ | |||
+ | # DBs list in format "db1 db2 db3 db4" | ||
+ | # | ||
+ | DBList=" | ||
+ | |||
+ | for DB in $DBList; | ||
+ | do | ||
+ | mysqldump $DB > $BackUpDIR$DB.$TimeStamp.sql; | ||
+ | xz $BackUpDIR$DB.$TimeStamp.sql | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | Делаем скрипт исполняемым и ограничиваем к нему доступ: | ||
+ | |||
+ | < | ||
+ | |||
+ | Пробуем выполнить скрипт, | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | Скрипт должен отработать без ошибок. После окончания его работы проверим содержимое каталога сохранения резервных копий: | ||
+ | |||
+ | < | ||
+ | |||
+ | drwx------ 2 root root 4096 Apr 4 11:32 . | ||
+ | drwx------ 3 root root 4096 Apr 4 11:10 .. | ||
+ | -rw-r--r-- 1 root root 4994140 Apr 4 11:31 blog-db.2016.04.04-11: | ||
+ | -rw-r--r-- 1 root root 375700 Apr 4 11:32 forum-db.2016.04.04-11: | ||
+ | |||
+ | |||
+ | Добавляем задание резервного копирования в планировщик **cron** | ||
+ | |||
+ | < | ||
+ | |||
+ | Содержимое файла задания на ежедневное выполнение в 00:30: | ||
+ | |||
+ | <file bash backup-databases> | ||
+ | # Daily mysql databases backup | ||
+ | 30 00 * * * root / | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | ==== Резервное копирование файлов веб-сайтов ==== | ||
+ | |||
+ | Создаём каталог для сохранения резервных копий файлов сайтов: | ||
+ | |||
+ | < | ||
+ | sudo chmod 700 / | ||
+ | |||
+ | Создаём скрипт: | ||
+ | |||
+ | < | ||
+ | |||
+ | Наполняем его содержимым: | ||
+ | |||
+ | <file bash backup-websites.sh> | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | # Verify directory structure exists prior to running this job | ||
+ | # | ||
+ | BackUpDIR="/ | ||
+ | SrvDir="/ | ||
+ | # | ||
+ | # Format of SiteList=" | ||
+ | SiteList=" | ||
+ | TimeStamp=$(date +" | ||
+ | |||
+ | for Site in $SiteList; | ||
+ | do | ||
+ | tar -cJf " | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | Делаем скрипт исполняемым и ограничиваем к нему доступ: | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Пробуем выполнить скрипт с правами суперпользователя: | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | Скрипт должен отработать без ошибок. После окончания его работы проверим содержимое каталога для сохранения резервных копий: | ||
+ | |||
+ | < | ||
+ | |||
+ | drwx------ 2 root root 4096 Apr 4 13:05 . | ||
+ | drwx------ 4 root root 4096 Apr 4 12:29 .. | ||
+ | -rw-r--r-- 1 root root 99416096 Apr 4 13:04 blog.website.2016.04.04-12: | ||
+ | -rw-r--r-- 1 root root | ||
+ | -rw-r--r-- 1 root root 380 Apr 4 12:54 root.website.2016.04.04-12: | ||
+ | -rw-r--r-- 1 root root 12538776 Apr 4 13:06 wiki.website.2016.04.04-12: | ||
+ | |||
+ | |||
+ | Добавляем задание резервного копирования в планировщик **cron**: | ||
+ | |||
+ | < | ||
+ | |||
+ | Содержимое файла задания на ежедневное выполнение в 01:00: | ||
+ | |||
+ | <file bash backup-websites> | ||
+ | # Daily websites root folders backup | ||
+ | 00 01 * * * root / | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | ==== Очистка старых резервных копий ==== | ||
+ | |||
+ | Создаём скрипт очистки: | ||
+ | |||
+ | < | ||
+ | |||
+ | Наполняем скрипт содержимым (поиск и удаление всех файлов резервных копий старше 7 дней): | ||
+ | |||
+ | <file bash backup-cleanup.sh> | ||
+ | # | ||
+ | # | ||
+ | find / | ||
+ | find / | ||
+ | </ | ||
+ | |||
+ | Делаем скрипт исполняемым и ограничиваем к нему доступ: | ||
+ | |||
+ | < | ||
+ | |||
+ | Пробуем выполнить скрипт с правами суперпользователя: | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | Скрипт должен отработать без явных ошибок. | ||
+ | |||
+ | |||
+ | Добавляем задание резервного копирования в **cron**: | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Содержимое файла задания на ежедневное выполнение в 02:00: | ||
+ | |||
+ | <file bash backup-cleanup.sh> | ||
+ | # Daily remove backups greater than 7 days old | ||
+ | 00 02 * * * root / | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | ~~DISCUSSION~~ |
unix-linux/ubuntu/ubuntu-14-04-lts-trusty-tahr/how-to-install-lemp-web-server-on-ubuntu-14-04/setup-daily-backup-scripts-for-mysql-databases-and-wordpress-phpbb-dokuwiki-sites.txt · Последнее изменение: 06.04.2016 16:07 — Алексей Максимов