« Назад

Резервирование базы данных mysql

 

Мощь и потенциал операционной системы Linux проявляется, когда ты ставишь себе достаточно сложное задание, за час-два пишешь скрипт для его реализации, запускаешь, отлаживаешь, запускаешь и все работает, годами, без глюков и подвисаний… И никакого коммерческого программного обеспечения.

Исходные данные

Имеется установленная операционная система Linux, система управления базами данных mysql, в которой работает база данных infotech, пользователь базы данных — inuser, пароль — qwerty (для примера). Задача — написать скрипт для резервного копирования базы данных с последующим архивированием архиватором tar. Срок хранения архивов баз -не более 30 дней. Резервирование выполнять по понедельникам, средам, пятницам и воскресеньям в 1.00.

Реализация

Создаем папку для хранения архивов:

#mkdir -p /backup/infotech

 

Пишем скрипт для поставленной задачи (bash):

#!/bin/bash
# Путь к папке с архивами
backup_dir="/backup/infotech"
#Шаблон для создаваемого архива с датой создания архива
backup_filename=infotech-`date +%Y-%m-%d`
#Полное имя архива
archive_filename=$backup_filename.tar.gz
#Срок хранения архивов
Backup_days=30
#Создаем дамп базы данных, используя пользователя с полными правами на базу данных
#(inuser для данного примера)
mysqldump -u iuser -pqwerty infotech > $backup_dir/$backup_filename.sql
#Архивируем созданный дамп
tar -C $backup_dir -czf $backup_dir/$archive_filename $backup_dir/$backup_filename.sql
#Удаляем дамп базы
rm $backup_dir/$backup_filename.sql
#Находим и удаляем все архивы сроком создания более 30 дней
find $backup_dir/infotech-* -mtime +$Backup_days -exec rm -v {} \;

 

Добавляем задачу в cron:  

#crontab -e
0 1 * * 0,1,3,5 /путь_к_файлу_скрипта 

 

В разрешениях не забудьте выставить выполнение для пользователя root.

Май 20, 2013

Если у вас возникли вопросы

СВЯЖИТЕСЬ С НАМИ!

Оставьте свои данные и мы свяжемся
с вами ближайшее время