Backup com Shell Script
Publicado por Marcelo Viana (última atualização em 27/12/2013)
[ Hits: 17.320 ]
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 de Backup do Perfil dos Usuários do Sistema em Batch do Windows
Backup de MySQL para uso no cron / cPanel
Backup de uma base MYSQL específica.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Open Suse não abre wi-fi automaticamente (2)
Criar entrada no GRUB para uma ISO Linux (6)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)