Enviado em 09/05/2012 - 13:03h
Estou fazendo um sistema de Bkp para vários BD, sendo que gostaria de saber como posso fazer para colocar todas as informações das contas de BD em um script "main.sh" (onde tem todas as variáveis e dados de acessos) para que o script "bkp.sh" (onde tem somente um laço para a geração do bkp) reconheça e faça o backup de cada BD?############## ARQUIVO main.sh
#################################################
#!/bin/sh
echo "Acessando banco de dados."
# Dados para acessar o BD.
MyUSER="USUÁRIO" # USERNAME
MyPASS="sENHA" # PASSWORD
MyHOST="HOST" # Hostname
db="banco-de-dados" #DB
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
# Montagem do HD Externo
echo "Montando HD Externo..."
mount /mnt/backup
echo "HD externo montado."
# Diretório Destino do backup.
DEST="/mnt/backup"
# Diretório principal onde o backup será armazenado
MBD="$DEST/aulasadistancia1"
# Obter nome do host
HOST="$(hostname)"
# Obter data no formato aaaa-mm-dd
NOW="$(date +"%Y-%m-%d")"
[ ! -d $MBD ] && mkdir -p $MBD || :
# Somente raiz pode acessá-lo!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
echo "Lendo banco de dados..."
# chama arquivo bkp.sh.
source /ASSISTEMAS/tools/test/bkp.sh
#Destagem do HD Ext
echo "Desmontando HD externo."
umount /mnt/backup
echo "HD externo Desmontado."
sleep 2
echo "---------------------------------------------"
echo "Backup e transferencia realizada com sucesso."
exit;
############## ARQUIVO bkp.sh
#################################################
#!/bin/sh
# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
echo "Fazendo backup do banco de dados, aguarde..."
FILE="$MBD/$db.$HOST.$NOW.sql.gz"
$MYSQLDUMP --opt -u $MyUSER -p$MyPASS -h $MyHOST $db | $GZIP -9 > $FILE