Backup com Shell Script
Publicado por Marcelo Viana (última atualização em 27/12/2013)
[ Hits: 17.407 ]
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
Backup usando o tar com o gzip
Script de Back Up, com limpeza de back ups antigos e e-mail com logs
sync_local - backup/restauração local
Limpeza dos dados do rConfig (ferramenta open-source de gerenciamento de configuração
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (0)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (6)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)