Na postagem anterior compartilhei um script que utilizada para backup de uma das minha base de dados, porém resolvi dar uma melhorada nele, pois tive alguns problemas com o restaure de backup gerados por aquele script. Tentei deixar o script mais dinâmico e com melhores combinações de parâmetros. Basicamente o script gera um arquivo .sql com combinações de INSERTs para que tanto o backup quanto o restaure fique mais rápido e o backup é feito com consistência para que não haja problemas posteriormente.
Obs.: para que o script funcione na parte da compactação bz2 é necessário instalar o pacote bzip2.
[1] Comentário enviado por rriscado em 20/03/2013 - 14:38h
Amigo, Somente contribuindo....
Ao fazer o tar, vc pode incluir o parâmetro "j" que ja cria o tar com bzip2, isso exclui a necessidade de rodar o comando "bzip2" posteriormente.
Também pode inserir ao final do comando o parâmetro "--remove-files", que exclui os arquivos de origem e torna desnecessário o comando "rm -rf" posteriormente.
A linha ficaria assim: tar -cjf $BACKUP_DIR/$BACKUP_TAR -C $BACKUP_DIR $BACKUP_NAME --remove-files
Dúvidas consultar manual do tar com o comando "$man tar".
[5] Comentário enviado por rcjeferson em 10/09/2013 - 19:19h
[4] Comentário enviado por daniii10 em 10/09/2013 - 09:30h:
Ola
Quais as partes do script que devo alterar para atender a minha base??
echo " -- Definindo parametros do MySQL ..."
DB_NAME='dbname'
DB_USER='dbuser'
DB_PASS='dbpass'
necessito alterar esta?
Todos os parâmetros de MySQL e Sistema você deve alterar para que funcione corretamente. Lembrando que os parâmetros do sistema, pode ser que funcione da maneira que está, tendo que alterar somente se os diretórios dos arquivos forem diferentes no seu sistema. O parâmetro que deve se atentar é o diretório onde o backup será feito (BACKUP_DIR) para que fique no diretório que melhor se adequar ao seu sistema.
[9] Comentário enviado por mpagliajr em 27/11/2017 - 00:02h
Eu tenho um grande problema, gerencio diversas VPS e faço diariamente backup do banco de dados de todas, porém meu maior problema é quando os clientes mudam usuário e senha do banco de dados. Existiria alguma forma de fazer um backup sem precisar usar usuário e senha?
[10] Comentário enviado por acsoprana em 17/07/2018 - 09:59h
Olá, muito bom seu script, mais poderia informar melhor o uso dos parâmetros:
DB_PARAM='--add-drop-table --add-locks --extended-insert --single-transaction -quick'
[11] Comentário enviado por acsoprana em 17/07/2018 - 10:04h
[9] Comentário enviado por mpagliajr em 27/11/2017 - 00:02h
Eu tenho um grande problema, gerencio diversas VPS e faço diariamente backup do banco de dados de todas, porém meu maior problema é quando os clientes mudam usuário e senha do banco de dados. Existiria alguma forma de fazer um backup sem precisar usar usuário e senha?
Olá, vou tentar contribuir, seus clientes mudam a senha do banco em questão ou a do usuário ROOT do mysql?? porque se eles mudam apenas a de cada database vc não teria problema em fazer os backups porque vc usa a senha do ROOT.
[12] Comentário enviado por jfernandes em 27/11/2018 - 20:04h
Olá pessoal, antes de mais nada, parabéns pelo post, mas no meu caso, não deu certo.
Minha configuração é a seguinte ;
echo "-- Definindo parametros do MySQL --"
DB_NAME='zabbix_db'
DB_USER='root'
DB_PASS='12345'
DB_PARAM='--add-drop-table --add-locks --extended-insert --single-transaction -quick'
echo "-- Definindo paraEmetros do sistema --"
DATE=`date +%Y-%m-%d`
MYSQLDUMP=/usr/bin/mysqldump
BACKUP_DIR=/backup/mysql
BACKUP_NAME=mysql -$DATE.sql
BACKUP_TAR=mysql -$DATE.tar
echo "-- Gerando backup da base de dados $DB_NAME em $BACKUP_DIR/$BACKUP_NAME ..."
$MYSQLDUMP $DB_NAME $DB_PARAM -u $DB_USER -p$DB_PASS > $BACKUP_DIR/$BACKUP_NAME
echo "-- Compactando arquivo em tar ..."
tar -cf $BACKUP_DIR/$BACKUP_TAR -C $BACKUP_DIR $BACKUP_NAME
echo "-- Compactado arquivo em bzip2 ..."
bzip2 $BACKUP_DIR/$BACKUP_TAR
echo "-- Excluindo arquivos desnecessários ..."
rm - -rf $BACKUP_DIR/$BACKUP_NAME
E o erro aparece nas linhas 11 e 12 .
./backups.sh
-- Definindo parametros do MySQL --
-- Definindo paraEmetros do sistema --
./backups.sh: line 11: -2018-11-27.sql: command not found
./backups.sh: line 12: -2018-11-27.tar: command not found
-- Gerando backup da base de dados zabbix_db em /backup/mysql/ ...
./backups.sh: line 15: /backup/mysql/: Is a directory
-- Compactando arquivo em tar ...
tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.
-- Compactado arquivo em bzip2 ...
bzip2: Input file /backup/mysql/ is a directory.
-- Excluindo arquivos desnecessários ...
Se eu digitar mysql na console, eu consigo entrar no mysql .
Valeu galera .