====== Scripts para automatizar backup e compactação de arquivos ======
===== Script para backup de bancos mysql =====
#! /bin/bash
#Autor: Cleiton Rodrigues 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 =====
#! /bin/bash
#Autor: Cleiton Rodrigues 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''
/etc/|apache2
/etc/php5/apache2/|php.ini
/var/www/|index.html
/var/www/|index.html.bkp
/var/www/my_site/|site
===== Script para backup de bancos mysql usando no Bacula =====
''dump-bds-pre.sh''
#! /bin/bash
#Autor: Cleiton Rodrigues 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''
#! /bin/bash
#Autor: Cleiton Rodrigues 2020-07-16
PATH_BKP="/var/backup/bds"
cd $PATH_BKP
rm -rf *.*