+380 (44) 592-86-88

Узнайте больше
полезная информация

Резервирование базы данных 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.