Skip to content

Instantly share code, notes, and snippets.

@facilita-tecnologia
Created March 26, 2020 13:18
Show Gist options
  • Save facilita-tecnologia/f1d6e062d64757552297fd544b848e04 to your computer and use it in GitHub Desktop.
Save facilita-tecnologia/f1d6e062d64757552297fd544b848e04 to your computer and use it in GitHub Desktop.
Backup automatizado do MYSQL
#!/bin/bash
#################### SCRIPT PARA BACKUP MYSQL ####################
# Definindo parametros do Email
# editar somente este cabecalho
DB_NAME='nome_do_banco'
DB_USER='usuario_do_banco'
DB_PASS='senha_do_banco'
VPS_NAME='Nome_da_sua_vps_ou_empresa'
DIR_GDRIVE='hashdirgdrive'
TOEMAIL='[email protected]' #log vai ser enviado para esse email
EMAIL='[email protected]'
SMTP='mail.seudominio.com.br:587' #coloque o servidor smtp do seu email e a porta
PASSWORD='senha_do_email'
#### fim da edicao, nao precisa mecher mais nada abaixo. se desejar alterar a quantidade de dias armazenados confira abaixo o comentario de onde alterar
DATE=`date +%Y-%m-%d_%H-%M-%S`
DATE2=`date +%d/%m/%Y_%H-%M-%S`
SUBJECT="Backup Diário > $VPS_NAME | $DATE2"
# Definindo parametros do backup
DB_PARAM='--add-drop-table --add-locks --extended-insert --single-transaction -quick'
MYSQLDUMP=/usr/bin/mysqldump
BACKUP_DIR=/opt/backup
BACKUP_TAR=$VPS_NAME-database-$DATE.gzip
#Template
echo -e $SUBJECT >> $BACKUP_DIR/log.txt
echo -e "Cliente: " $VPS_NAME >> $BACKUP_DIR/log.txt
echo -e "Data: " $DATE >> $BACKUP_DIR/log.txt
#apaga backups antigos com mais de 10 dias
echo -e "= BACKUPS COM MAIS DE 10 DIAS =" >> $BACKUP_DIR/log.txt
## as linha abaixo procuram dados com mais de 10 dias e exclui, se quiser aumentar a quantidade, alterar todos os -mtime +10 para a quantidade desejada
find /opt/backup/* -mtime +10 -exec ls -l {} \; >> $BACKUP_DIR/log.txt
echo -e "========================================" >> $BACKUP_DIR/log.txt
find /opt/backup/* -mtime +10 -exec rm -rf {} \;
#apaga logs antigos com mais de 10 dias
echo -e "= LOGS COM MAIS DE 10 DIAS =" >> $BACKUP_DIR/log.txt
find /opt/traccar/logs/* -mtime +10 -exec ls -l {} \; >> $BACKUP_DIR/log.txt
echo -e "========================================" >> $BACKUP_DIR/log.txt
find /opt/traccar/logs/* -mtime +10 -exec rm -rf {} \;
#Gerando arquivo sql
$MYSQLDUMP --databases $DB_NAME $DB_PARAM -u $DB_USER -p$DB_PASS | bzip2 > $BACKUP_DIR/$BACKUP_TAR
echo -e "Tamanho: " >> $BACKUP_DIR/log.txt
du -h $BACKUP_DIR/$BACKUP_TAR >> $BACKUP_DIR/log.txt
echo -e "========================================" >> $BACKUP_DIR/log.txt
#Enviando gDrive
#/opt/backup/gdrive-linux-x64 upload --parent $DIR_GDRIVE --delete $BACKUP_DIR/$BACKUP_TAR >> $BACKUP_DIR/log.txt
echo -e "=======================================" >> $BACKUP_DIR/log.txt
#Enviando Email
sendemail -f $EMAIL -t $TOEMAIL -u $SUBJECT -o message-file=/opt/backup/log.txt -s $SMTP -o -xu $EMAIL -xp $PASSWORD
#apagando log
rm $BACKUP_DIR/log.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment