Blog the XELFAER

Заметки *NIX

Скрипт бэкапа CMS и БД MySQL —

Создав сайт и БД для него, зачастую поначалу не задумываешься об определенных нюансах после установки — своевременного создания резервной копии.

Не теряем времени и пишем небольшой скрипт который все автоматизирует. Бэкапить будем CMS и БД(MySQL) + для удобства сделаем отправку отчета на email.

#!/bin/bash
#####################################
#                                   #
#                                   #
#Скрипт бэкапа данных CMS и MySQL БД#
#                                   #
#                                   #
#####################################
#
#путь к каталогу где расположен CMS
cmsdir=''
# имя архива CMS
cmsname=''
#путь где будет храниться CMS
savedircms=''
#переход в каталог где будет храниться архим CMS
cd $savedircms
#создание резервной копии CMS с указанием даты создания архива
tar -zpcf `date +%F`_$cmsname.tar.gz $cmsdir > /dev/null 2>&1
#
#имя резервируемой БД
databasename=''
#путь где будет храниться архив БД
savedirdatabase=''
#переход к каталогу где будет храниться архив БД
cd $savedirdatabase
#создание резервной копии БД c указанием даты создания архива
mysqldump --add-drop-table -h localhost $databasename | bzip2 -c > `date +%F`_$databasename.sql.bz2
#
#формат даты для поиска архива который будет отправлен на mail
searchname=`date +%F`
#отправка отчета о выполнении скрипта
echo "Скрипт бэкапа данных блога выполнен: ""Архив CMS: "`ls $savedircms | grep $searchname`"     ""Архив БД: "`ls $savedirdatabase | grep $searchname` | mailx -s "Отчет о выполнении скрипта бэкапа блога" root@localhost

где в:

cmsdir=''
cmsname=''
savedircms=''
databasename=''
savedirdatabase=''

необходимо между кавычек указать свои данные.
Также следует изменить адрес root@localhost если предполагается отправка на другой адрес оповещения.

Далее необходимо выдать скрипту права:

chmod 600 backup.sh

Утилита mysqldump требует указания login:password для запуска, поэтому необходимо изменить настройку конфига mysql:

# vim /etc/mysql/my.cnf

ищем блок: [mysqldump]
где дописываем чуть ниже две строки:

user=логин_mysql
password=пароль_mysql

и выдадим права на файл:

# chmod 600 my.cnf

Осталось поставить скрипт на запуск по cron:

00 5    * * *   root    /etc/scripts/backup.sh

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

# /etc/init.d/cron restart

© 2013 — 2015, XELFAER. Все права защищены. Использование материалов блога разрешается только при указании активной ссылки на статью.

Print Friendly

Рубрики: Linux | Script


комментария 3

  1. vidos:

    Скрипт простой и отлично работает. Я не силен в ЛИнуксе, можете подсказать как сделать, чтобы бэкапы старше, скажем двух дней удалялись автоматически.? Спасибо! Ваш блог очень нравится, по нему настроил почту на сервере.

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