Меня очень задрало, если в случае необходимости приходится выковыривать из слитного бекапа всех баз данных какую-то конкретную базу.
Сегодня гнев победил лень, и я нашёл на http://www.snowfrog.net/2005/11/16/backup-multiple-databases-into-separate-files/, а потом и немного модифицировал скрипт для бекапа всех баз данных в отдельные файлы.
При этом, файлы называются именами баз, и всё складывается в папку, названную датой бекапа.
В полной новости — shell-скрипт.
Меня очень задрало, если в случае необходимости приходится выковыривать из слитного бекапа всех баз данных какую-то конкретную базу.
Сегодня гнев победил лень, и я нашёл на http://www.snowfrog.net/2005/11/16/backup-multiple-databases-into-separate-files/, а потом и немного модифицировал скрипт для бекапа всех баз данных в отдельные файлы.
При этом, файлы называются именами баз, и всё складывается в папку, названную датой бекапа.
Отлично работает в Ubuntu
# sonia 16-nov-05, upd. by apache 12-aug-12
# backup each mysql db into a different file, rather than one big file
# as with —all-databases — will make restores easier
USER=username #указываем имя пользователя СУБД с полными правами
PASSWORD=*** #указываем его пароль
OUTPUTDIR=/media/backup/ # путь для бекапа, не забываем проверить права на эту папку — она должна быть доступна на запись (хотя бы 750)
MYSQLDUMP=/usr/bin/mysqldump
MYSQL=/usr/bin/mysql
# clean up any old backups — save space
rm $OUTPUTDIR/*bak > /dev/null 2>&1
mkdir $OUTPUTDIR/`date +%Y-%m-%d`/
# get a list of databases
databases=`$MYSQL —user=$USER —password=$PASSWORD
-e SHOW DATABASES; | tr -d | | grep -v Database`
# dump each database in turn
for db in $databases; do
echo $db
$MYSQLDUMP —force —opt —user=$USER —password=$PASSWORD
—databases $db | bzip2 > $OUTPUTDIR/`date +%Y-%m-%d`/$db.bz2
done