Shell MySQL Backups - Qual é a sua solução?

1

Estou procurando uma ótima solução para backup dos meus bancos de dados MySQL - todos eles. Eu gostaria de cada um em pelo menos seu próprio arquivo. Eu preciso de capacidade de FTP mais tarde, mas não agora. Agora eu só preciso salvar no mesmo servidor que está sendo executado.

O que você usa?

atualização

Suponho que devo ser mais claro no que estou pedindo ... Estou procurando um script bash que utilizará mysqldump para criar arquivos de backup individuais para cada banco de dados ou um arquivo individual para uma tabela se tabela é grande o suficiente.

    
por Webnet 15.07.2010 / 17:52

4 respostas

2

Você pode usar este script:

#!/bin/bash
BACKUP_DIR="/opt/backup"
MYSQL_USER=your_user
MYSQL_PASS=your_pass
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

DB_LIST="$($MYSQL -u $MYSQL_USER -p$MYSQL_PASS -Bse 'show databases')"
for db in $DB_LIST;
do
    BACKUP_SUBDIR="$BACKUP_DIR/mysql_'date +%Y-%m-%d'"
    BACKUP_FILE="$BACKUP_SUBDIR/$db.gz"
    if [ ! -d $BACKUP_SUBDIR ]; then
        mkdir -p $BACKUP_SUBDIR
    fi
    if [ -f $BACKUP_FILE ]; then
        unlink $BACKUP_FILE
    fi
    $MYSQLDUMP -u $MYSQL_USER -p$MYSQL_PASS $db | $GZIP -9 > $BACKUP_FILE
done
    
por 15.07.2010 / 18:11
3

Eu tenho usado este script AutoMySQLBackup para meus mysqldumps. Faz backups e rotações diárias, semanais e mensais. Muito útil.

    
por 15.07.2010 / 19:32
0

Eu uso um script Bash simples que faz um mysqldump e, em seguida, um rsync (facilmente use ftp) para uma outra máquina offiste.

muito simples, mas funciona!

não é preciso baixar o banco de dados também.

link

Luc

    
por 15.07.2010 / 18:00
0

Este backup diário criará um backup do seu banco de dados e criará backups de 4 dias e os rotacionará. Você pode então fazer o backup dessa pasta em um site remoto.

#!/bin/bash -x
#
# Marco Maldonado MySQL Backup
# Version 1.0 September 9 2008
# comments [email protected]

MYSQL='which mysql'
MYSQLDUMP='which mysqdump'
BACKUPS=/opt/backups
dbs='$MYSQL -u root -pYOURPASSWORD -Bse 'show databases''

for db in $dbs
do
rm -rf $BACKUPS/$db.3
mv $BACKUPS/$db.2 $BACKUPS/$db.3
mv $BACKUPS/$db.1 $BACKUPS/$db.2
mv $BACKUPS/$db.0 $BACKUPS/$db.1
#mkdir $BACKUPS/$db.0
#$HOTCOPY $userpassword $db $BACKUPS/$db.0
mysqldump -u root -pIndr@sN3t $db  > $BACKUPS/$db.0
done

Certifique-se de ter uma pasta dentro de / opt e chame-a de backups

    
por 19.07.2010 / 21:27