#! /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
#! /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
/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>
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
#! /bin/bash #Autor: Cleiton Rodrigues <cleitonrdesouza@gmail.com> 2020-07-16 PATH_BKP="/var/backup/bds" cd $PATH_BKP rm -rf *.*