Backup com Shell Script
Publicado por Marcelo Viana (última atualização em 27/12/2013)
[ Hits: 17.247 ]
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
Ferramenta de backup do HD para dispositivos externos
Backup de MySQL para uso no cron / cPanel
Backup de diretórios do sistema Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)