Backup com Shell Script
Publicado por Marcelo Viana (última atualização em 27/12/2013)
[ Hits: 17.538 ]
Homepage: infSite.org
Oi pessoal,
A seguir um simples e útil script para backup, com exclusão de arquivos antigos, backup completo do banco MySQL e determinadas pastas do servidor.
O que faz:
- Copia os arquivos a serem backupeados para um diretório temporário ($base_tmp). Estes arquivos são mantidos por 5 dias.
- Logo após, no final do script, a base principal ($base_principal) é atualizada com os arquivos do diretório temporário. Os arquivos da base principal são mantidos por 10 dias.
- O backup das configurações do servidor são mantidos na base principal ($base_principal) por 360 dias, por serem arquivos pequenos.
# Paz.
# É o Senhor que mostra os caminhos.
#
#!bin/bash
#
# nomeclaturas para arquivos backupeados
mysql="mysql-`date +%d-%m-%Y`.databases.db"
www="www-`date +%d-%m-%Y`.tar.gz"
confs="confs-`date +%d-%m-%Y`.tar.gz"
#
# diretórios para quardar os backups
base_tmp="/backup/backups"
base_principal="/sdc5/Web-Sites/backup/backups"
#
# quantidade de dias para manter os arquivos já backupeados
dias1=5
dias2=10
dias3=360
#
# diretórios a ser backupeados
bkp1="/var/www/*"
bkp2="/etc/squid/*"
bkp3="/etc/proftpd/*"
bkp4="/etc/network/*"
bkp5="/etc/dhcp/*"
bkp6="/etc/bind/*"
bkp7="/etc/rotinas/*"
#
# usuário e senha do banco myslql
user_mysql="root"
pass_mysql="senha"
#
#
echo "Excluindo arquivos da base temporária com mais de $dias1 dias..."
find $base_tmp -ctime +$dias1 -type f -exec rm -rvf {} \;
echo "Excluindo arquivos da base principal com mais de $dias2 dias..."
find $base_principal/mysql/ -ctime +$dias2 -name "*.db" -exec rm -rvf {} \;
find $base_principal/sites/ -ctime +$dias2 -name "*.tar.gz" -exec rm -rvf {} \;
echo "Excluindo arquivos de configurações com mais de $dias3 dias..."
find $base_principal/confs/ -ctime +$dias3 -name "*.tar.gz" -exec rm -rvf {} \;
#
echo "Executando backup do banco mysql..."
mysqldump -u$user_mysql -p$pass_mysql --all-databases > $base_tmp/mysql/$mysql
echo "Arquivo $mysql criado!"
#
echo "Executando backup dos sites..."
tar -zcPf $base_tmp/sites/$www $bkp1
echo "Arquivo $www criado!"
#
echo "Executando backup das configurações do sistema..."
tar -zcPf $base_tmp/confs/squid_$confs $bkp2
tar -zcPf $base_tmp/confs/proftpd_$confs $bkp3
tar -zcPf $base_tmp/confs/network_$confs $bkp4
tar -zcPf $base_tmp/confs/dhcp_$confs $bkp5
tar -zcPf $base_tmp/confs/bind_$confs $bkp6
tar -zcPf $base_tmp/confs/rotinas_$confs $bkp7
#
echo "Atualizando base principal de backup '$base_principal'..."
cp -rvf $base_tmp/* $base_principal
echo "ok!"
# É o Senhor que mostra os caminhos. Agradeço por me ajudar através de tantos exemplos.
# E que bom existe o vivaolinux!
# infsite.org
Script Backup com Log e envio por Email
Backup Máquina do Tempo com Rsync
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (1)
Erro ao tentar ativar o secure boot no arch (1)









