sexta-feira, 6 de julho de 2012

Backup de Bases de dados no Mysql com shellscript


Um script bem útil para ajudar na hora de fazer backup de bases de dados do mysql.


#!/bin/bash
# backup each mysql db into a different file, rather than one big file
# as with --all-databases - will make restores easier

#remove os arquivos .tgz antes de iniciar o backup
rm -f /home/backup/*.tgz

# get a list of databases
databases=`mysql --user=root --password=finnet102030 -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

# dump each database in turn
for db in $databases; do
        # get a list of tables
        tables=`mysql -uroot -pfinnet102030 --database=$db -e "show tables;" | tr -d "| " | grep -v Tables`
                for table in $tables; do

                        echo $db
                        echo $table
                        mysqldump --force --opt --user=root --password=finnet102030 --databases $db --tables $table > "/home/backup/$db.$table.sql"
                        tar -zcf "/home/backup/$db.$table.tgz" "/home/backup/$db.$table.sql"

                done
done

rm -f /home/backup/*.sql