Table of Contents

Scripts para automatizar backup e compactação de arquivos

Script para backup de bancos mysql

dump-mysql.sh
#! /bin/bash

#Autor: Cleiton Rodrigues <cleitonrdesouza@gmail.com> 2020-07-16

#UBKP="userbkp"
#PBKP="UserBkP"
echo  "User BD: "
read UBKP
read -s -p "Password: " PBKP
 
PATH_BKP="/var/backups/bkp-my-server/bds"
 
if [ ! -d $PATH_BKP ]
 then
 mkdir $PATH_BKP
fi
 
cd $PATH_BKP
 
#listar os bancos existentes no arquivo "all-bds.txt":
mysql -u $UBKP -p$PBKP -e "show databases;" > all-bds.txt
 
#ler linha por linha do arquivo "all-bds.txt", e roda o comando de dump:
while read line
do
#existe duas linhas no arquivo que nao sao bancos, pulando elas:
 if [ $line != "Database" ] && [ $line != "information_schema" ] && [ $line != "performance_schema" ]
 then
  echo -e "==> fazendo bkp de $line -----------------"
  mysqldump -u $UBKP -p$PBKP $line > "$line".sql
  echo -e "compactando $line"
  tar -cvzf "$line".sql.tar.gz "$line".sql
  echo -e "removendo $line.sql"
  rm "$line".sql
  echo -e "feito $line!"
 fi
done < all-bds.txt

Script para backup e compactação de arquivos

bkp-files.sh
#! /bin/bash

#Autor: Cleiton Rodrigues <cleitonrdesouza@gmail.com> 2020-07-16

PATH_BKP="/var/backups/bkp-my-server/files"
day=$(date +%Y%m%d)
data=$(date)
 
if [ ! -d $PATH_BKP ]
 then
 mkdir $PATH_BKP
fi
 
cd $PATH_BKP
 
#listar lista de arquivos para backup deve ser inserida no arquivo "bkp-files.txt":
#ler linha por linha do arquivo "bkp-files.txt", e roda o comando de compactacao.
#arquivo deve ser no formato abaixo:
# /home/user/my-dir/|myfile.txt
#usar o caracter pipe "|" entre nome final do arquivo ou diretório.
#deixar uma linha em vazia ao final.
#comando "ls -1" pode ajudar a fazer o arquivo.

echo -e "Backup iniciado em "$data >> backup-$day.log
IFS='|'
i=1;
while read lPath lFile
do
 echo -e "==> fazendo bkp de $lFile -----------------" >> backup-$day.log
 echo -e "compactando $lFile" >> backup-$day.log
 tar -cvzf "$lFile".tar.gz "$lPath$lFile" >> backup-$day.log
 echo -e "feito $lFile!" >> backup-$day.log
 let i=$i+1;
done < ../bkp-files.txt
data=$(date)
echo -e "Backup finalizado em "$data >> backup-$day.log

Exemplo arquivo bkp-files.txt

bkp-files.txt
/etc/|apache2
/etc/php5/apache2/|php.ini
/var/www/|index.html
/var/www/|index.html.bkp
/var/www/my_site/|site
<deixar a última linha vazia>

Script para backup de bancos mysql usando no Bacula

dump-bds-pre.sh

dump-bds-pre.sh
#! /bin/bash

#Autor: Cleiton Rodrigues <cleitonrdesouza@gmail.com> 2020-07-16

UBKP="userbkp"
PBKP="UserBkP"
PATH_BKP="/var/backup/bds"
 
if [ ! -d $PATH_BKP ]
 then
 mkdir $PATH_BKP
fi
 
cd $PATH_BKP
 
#listar os bancos existentes no arquivo "all-bds.txt":
mysql -u $UBKP -p$PBKP -e "show databases;" > all-bds.txt
 
#ler linha por linha do arquivo "all-bds.txt", e roda o comando de dump:
while read line
do
#existe duas linhas no arquivo que nao sao bancos, pulando elas:
 if [ $line != "Database" ] && [ $line != "information_schema" ]
 then
  echo -e "fazendo bkp de $line"
  mysqldump -u $UBKP -p$PBKP $line > "$line".sql
  echo -e "feito $line!"
 fi
done < all-bds.txt

dump-bds-pos.sh

dump-bds-pos.sh
#! /bin/bash

#Autor: Cleiton Rodrigues <cleitonrdesouza@gmail.com> 2020-07-16

PATH_BKP="/var/backup/bds"
cd $PATH_BKP
rm -rf *.*