Bash скрипт для бекапа баз данных MySQL


Бекап рабочего сервера баз данных MySQL можно делать различными способами. C одним таким способом, через bash, мы сегодня познакомимся.

Преимущество данного метода в том, что скрипт сам выбирает все нужные базы, делает дамп информации и запаковывает в архив. На выходе мы имеем полный бекап информации всех нужных БД в компактном виде.

Наш скрипт backup_mysql.sh будет выглядеть следующим образом:


#!/bin/bash

USER="Логин, который имеет доступ ко всем базам"
PASSWORD="Пароль"
OUTPUT="/usr/home/backup_mysql" #директория для хранения резервных копий

databases=`mysql --user=$USER --password=$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
    if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] ; then
        echo "Dumping database: $db"
        mysqldump --force --opt --user=$USER --password=$PASSWORD --databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql
        gzip $OUTPUT/`date +%Y%m%d`.$db.sql
    fi
done

После этого необходимо дать права на запуск нашего скрипта:

chmod 700 backup.sh

Скрипт можно запускать руками или же автоматизировать это действие при помощи стандартного планировщика cron.


Другие публикации:

Написать комментарий через:

 
               
  • Локальный блог
  •  
 

Ваш отзыв

Имя *

Почта (скрыта) *

Сайт

Напишите цифрами двa вoceмь двa *

Сообщение

Один отзыв на «Bash скрипт для бекапа баз данных MySQL»

  1. VРS_аdm пишет:

    Простой вариант “на коленке”:

    #!/bin/bash
    find /var/backup/ -mtime +10 -delete
    for dbname in `echo show databases| mysql|grep -v 'Database\|information_schema\|performance_schema\|mysql'`; do
    mysqldump $dbname|gzip > "/var/backup/$dbname-`date +%y%m%d_%H%M`.sql.gz"
    done;

 
Статусы для соц.сетей на ArtKiev Design Studio