Отправить заявку

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.

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