Script para Backup do MySQL

Script para Backup do MySQL

Um script bem básico para zipar arquivo SQL e apagar arquivos antigos.

#!/bin/bash
 #Variaveis
 ip=""                                          # Servidor mysql
 user=""                                        # login
 pw=""                                          # senha
 db=""                                          # banco de dados
 home="/home/backup/temp/"                      # local onde será salvo o backup
 nome_temp="all"                                # nome do arquivo temporário mysql
 bk="/var/www/html/uploads/si/$db/"             # Diretório para salvar arquivos de backup
 nw=$(date "+%d%m%Y")                           # Buscar pela data
 nb=7                                           # número de dias de cópias do banco de dados
 hs="backup"                                    # nome do arquivo compactado

 function backup(){
  echo "Inicializando Backup - MySQL"

      mysqldump -P 3306 -h $ip --user=$user --password=$pw --single-transaction --quick --lock-tables=false --add-drop-table  $db -B  > "$HOME/$hs.sql";

  echo "Compactando arquivo $hs.sql.zip ..."
    gzip -f "$HOME/"$hs.sql
    if [ ! -d $bk ]; then
       mkdir $bk
    fi
       cp -f "$HOME/"$hs.sql.gz "$bk/$nw.sql.zip"
       a=0
       b=$(ls -t $bk)
       c=$nb

    for arq in $b; do
       a=$(($a+1))
 
   if [ "$a" -gt $c ];  then
       rm -f "$bk/$arq"
    fi
    done

  echo "Concluido..."
}

Para rodar o script rode o comando:

/bin/bash nome do seu arquivo.sh