Мои маленькие друзья сегодня сам себе робот научит настраивать автоматический бэкап базы данных через заднюю дверь. Ведь каждое падение базы данных без бэкапа это новая зарубка на топоре экзекьютора.

Дамп базы данных

Здесь все просто, в консоль заряжаем мессадж, где указываем имя пользователя базы данных, его пароль вместе с -p и имя базы данных. А также директорию и имя файла, куда вывалится ваш dump

mysqldump -u USER -pPASSWORD BD_NAME > backup/BD_NAME.sql

И таких баз данных может быть много, например столько сколько сам себе сайтов на сервере. И для каждой базы данных своя строка.

Создание архива с базами данных

Получили несколько файлов с расширениями .sql, будем их паковать в тару. Архиватор tar с несложной конструкцией в помощь моим маленьким друзьям

tar -czvf backup_`date '+%d%m%Y_%k%M'`.tar.gz /root/backup && rm /root/backup/*

Команда пакует файлы баз данных, которые уже лежат в корневой директории в папке backup в контейнер tar со сжатием gz. Имя файла с бэкапом баз данных будет содержать дату и время создания. А после того как упаковка архива выполнена удаляет исходные файлы с дампами баз данных из этой директории, чтоб место на диске было в достатке.

Автоматизируем бэкап базы данных

Не будь я роботом, если любой процесс не автоматизирую. Будем делать shell скрипт и красиво исполнять его через cron. Создаем файл в нашей корневой директории с расширением .sh следующего содержания

#!/bin/sh
mysqldump -u USER -pPASSWORD BD_NAME1 > backup/BD_NAME1.sql
mysqldump -u USER -pPASSWORD BD_NAME2 > backup/BD_NAME2.sql
mysqldump -u USER -pPASSWORD BD_NAME3 > backup/BD_NAME3.sql
tar -czvf backup_`date '+%d%m%Y_%k%M'`.tar.gz /root/backup && rm /root/backup/*

сохраним и присвоим ему имя robot.sh, а затем проверим как он работает. Из консоли скомандуем

sudo sh robot.sh

если все работает, в директории root/backup появится файл архив backup_010424_1012.tar.gz с дампами баз данных.

Добавляем исполнение скрипта в крон

Кронотаб эльфийская магия высшего порядка станет нам с тобой доступна уже сегодня мой маленький друг. Для инсталляции нового задания в расписание в консоли вызываем

sudo crontab -e

Откроется список текстовых редакторов для написания статей, выбираем nano и в нем добавляем новую строку задание, не забываем раскомментировать, убрать # в начале строки.

0 2,18 * * * sudo sh  /root/backup.sh

Нажимаем ctrl-O для перезаписи crontab и ctrl-X для завершения магического ритуала. Каждый день, два раза в день в 2 часа ночи и 6 часов вечера по мордорскому времени будет исполняться скрипт. И наш автоматический бэкап базы данных будет работать. Остается подключаться и забирать архив с сервера в свое хранилище

Какие метод есть у вас напишите в комментариях

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x