Skip to content

Instantly share code, notes, and snippets.

@facilita-tecnologia
Created May 30, 2020 20:44
Show Gist options
  • Save facilita-tecnologia/b805a9035dced114aac45be8c8ea1114 to your computer and use it in GitHub Desktop.
Save facilita-tecnologia/b805a9035dced114aac45be8c8ea1114 to your computer and use it in GitHub Desktop.
Backup do Mysql
#!/bin/bash
###################################################################
# Nome : backup_mysql.sh
# Script para Backup dos dados do MySQL #
# Criação : 05/09/2019 - Jocinardo Rodrigues #
# Ultima modificação : 05/09/2019 - Jocinardo Rodrigues #
###################################################################
# Changelog
##### Variaveis
declare DATA=`date +%Y%m%d_%H`
declare DIR_BACKUP="/opt/backups/mysql/" # Define o diretório de backup
declare SENHA="suasenha"
declare USER="root"
DIR_DEST_BACKUP=$DIR_BACKUP$DATA
###################################################################
##### Rotinas secundarias
mkdir -p $DIR_BACKUP/$DATA # Cria o diretório de backup diário
echo "MYSQL"
echo "Iniciando backup do banco de dados"
##################################################################
# função que executa o backup
executa_backup(){
echo "Inicio do backup $DATA"
#Recebe os nomes dos bancos de dados na maquina destino
BANCOS=$(mysql -u $USER -p$SENHA -e "show databases")
#retira palavra database
#BANCOS=${BANCOS:9:${#BANCOS}}
declare CONT=0
#inicia o laço de execução dos backups
for banco in $BANCOS
do
if [ $CONT -ne 0 ]; then # ignora o primeiro item do array, cujo conteudo é "databases"
NOME="backup_my_"$banco"_"$DATA".sql"
echo "Iniciando backup do banco de dados [$banco]"
# comando que realmente executa o dump do banco de dados
mysqldump --hex-blob --lock-all-tables -u $USER -p$SENHA --databases $banco > $DIR_DEST_BACKUP/$NOME
# verifica que se o comando foi bem sucedido ou nao.
if [ $? -eq 0 ]; then
echo "Backup Banco de dados [$banco] completo"
else
echo "ERRO ao realizar o Backup do Banco de dados [$banco]"
fi
fi
CONT=`expr $CONT + 1`
done
DATA=`date +%Y%m%d_%H%M`
echo "Final do backup: $DATA"
}
executa_backup 2>> $DIR_BACKUP/$DATA/backup.log 1>> $DIR_BACKUP/$DATA/backup.log
# BACKUP DA PASTA /var/zpanel/hostdata/zadmin/public_html/
zip -r $DIR_DEST_BACKUP/HTML.zip /var/zpanel/hostdata/zadmin/public_html
# COMPACTAR BACKUP
zip -r /opt/backups/mysql/$DATA.zip $DIR_DEST_BACKUP
# EXCLUIR PASTA
rm -rf $DIR_DEST_BACKUP
# APAGAR BACKUPS ANTIGOS
/usr/bin/find /opt/backups/mysql -type f -ctime +2 -exec rm -rf '{}' \;
###################################################################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment