» » Делаем бекап всех MySQL-баз, каждую кладём в отдельный файл

Делаем бекап всех MySQL-баз, каждую кладём в отдельный файл

Меня очень задрало, если в случае необходимости приходится выковыривать из слитного бекапа всех баз данных какую-то конкретную базу.

Сегодня гнев победил лень, и я нашёл на http://www.snowfrog.net/2005/11/16/backup-multiple-databases-into-separate-files/, а потом и немного модифицировал скрипт для бекапа всех баз данных в отдельные файлы.

При этом, файлы называются именами баз, и всё складывается в папку, названную датой бекапа.

Отлично работает в Ubuntu

 

 

<span style="font-family: "courier new", "courier";">#!/bin/bash</span>
<span style="font-family: "courier new", "courier";"># sonia 16-nov-05, upd. by apache 12-aug-12</span>
<span style="font-family: "courier new", "courier";"># backup each mysql db into a different file, rather than one big file</span>
<span style="font-family: "courier new", "courier";"># as with --all-databases - will make restores easier</span>
<span style="font-family: "courier new", "courier";">USER="<span style="color: #339966;">username</span>" #указываем имя пользователя СУБД с полными правами</span>
<span style="font-family: "courier new", "courier";">PASSWORD="<span style="color: #339966;">***</span>"  #указываем его пароль</span>
<span style="font-family: "courier new", "courier";">OUTPUTDIR="<span style="color: #339966;">/media/backup/</span>" # путь для бекапа, не забываем проверить права на эту папку - она должна быть доступна на запись (хотя бы 750)</span>
<span style="font-family: "courier new", "courier";">MYSQLDUMP="/usr/bin/mysqldump"</span>
<span style="font-family: "courier new", "courier";">MYSQL="/usr/bin/mysql"</span>
<span style="font-family: "courier new", "courier";"># clean up any old backups - save space</span>
<span style="font-family: "courier new", "courier";">rm "$OUTPUTDIR/*bak" > /dev/null 2>&1</span>
mkdir $OUTPUTDIR/`date +%Y-%m-%d`/
<span style="font-family: "courier new", "courier";"># get a list of databases</span>
<span style="font-family: "courier new", "courier";">databases=`$MYSQL --user=$USER --password=$PASSWORD \</span>
<span style="font-family: "courier new", "courier";"> -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`</span>
<span style="font-family: "courier new", "courier";"> # dump each database in turn</span>
<span style="font-family: "courier new", "courier";"> for db in $databases; do</span>
<span style="font-family: "courier new", "courier";"> echo $db</span>
<span style="font-family: "courier new", "courier";"> $MYSQLDUMP --force --opt --user=$USER --password=$PASSWORD \</span>
<span style="font-family: "courier new", "courier";"> --databases $db | bzip2 > "$OUTPUTDIR/`date +%Y-%m-%d`/$db.bz2"</span>
<span style="font-family: "courier new", "courier";"> done</span>



backup, MySQL, Linux
Автор: Apache
5316 12.08.12


Напишите цифрами число "сто"