Простой cron скрипт архивирования MySQL базы данных

Ниже представлен простой, но очень полезный и легко настраиваемый скрипт бэкапа базы данных MySQL. Сначала выполняется команда mysqldump, которая выгружает текущее состояние базы в файл в SQL формате. Далее этот файл архивируется в GZIP архив. Кроме того удаляются старые архивы (в примере они хранятся 3 дня). В конце скрипт возвращает имя только что созданного архива. Если в настройка задания Cron указать адрес, куда отправлять вывод скрипта, то имя нового файла уйдет вам на почту как уведомление.

Нужно создать Cron задачу и запланировать ее на выполнение раз в день или чаще:

/var/www/userXXX/data/db_dump/mysqlbackup.sh

Сам скрипт нужно поместить в фалй с названием «mysqlbackup.sh» в созданную специально для этого папку в корне вашего хостинг аккаунта «db_dump«. Листинг скрипта представлен ниже:

#/bin/sh
# Make DB dump and GZIP

# MAKE Settings here:
DB_NAME=’XXX’
DB_USER=’XXX’
DB_PASS=’XXX’
FPATH=’/var/www/userXXX/data/db_dump/’
FPREFIX=’$DB_NAME’_
DATETIME=`date ‘+%Y%m%d_%H%M%S’`

# System parameters
MYSQLDUMP=’$(which mysqldump)’
GZIP=’$(which gzip)’

# Make DB dump and GZip it
$MYSQLDUMP -u$DB_USER -p$DB_PASS $DB_NAME | $GZIP > $FPATH$FPREFIX$DATETIME.gz

# Remove dumps older than 3 days
find $FPATH -type f -name $FPREFIX*.gz -mtime +3 | xargs rm

# Output created file name
find $FPATH$FPREFIX$DATETIME.gz

В принципе достаточно указать ваши параметры только в первом блоке, где стоит три икса (XXX). Но по желанию можно менять и другие настройки скрипта — всё хорошо прокомментировано на универсальном языке программирования — английском.

Как добавлять задачу в планировщик задач Cron можно узнать у Википедии (торопитесь, Википедию возможно скоро закроют).

Один комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *