Backup automatizado com HD externo
Este é o meu primeiro artigo do VOL e tem o intuito de ensinar como criar scripts para backups automatizados em HDs externos, partições, pendrives, etc. Como sou administrador de redes, vivo tendo problemas com backup e esta é uma solução muito útil. Espero que gostem!
Criando e entendendo os scripts
Este tipo de backup é útil para quem precisa compactar uma quantidade muito grande de arquivos diariamente sem perda de tempo. O método utilizado para compressão é o "TAR.GZ", que suporta (compactado) tamanhos superiores a 2 GB, diferentemente de arquivos "ZIP" que se corrompem.
Para começar, antes de mais nada precisaremos definir um local para guardar os scripts que serão criados.
Crie a pasta /script-backup:
# mkdir /script-backup
# cd /script-backup
Para cada dia da semana criei uma pasta dentro do meu drive (HD externo) e dei permissão total.
Antes precisei montar a partição (sdb1 é onde está meu HD externo ligado na USB):
# mount /dev/sdb1 /backup
# mkdir /backup/segunda
# chmod 777 /backup/segunda
.
.
. # mkdir /backup/sexta
# chmod 777 /backup/sexta
# umount /dev/sdb1
Esta é uma forma mais organizada de armazenar os backups. Crie as pastas de acordo com a necessidade, colocando o nome de acordo com o dia da semana.
Para criar os scripts, abra seu editor de textos (no meu caso uso o VIM) e acrescente o código abaixo. Salve dentro da pasta /script-backup:
# vim bkp-segunda
Faça este mesmo procedimento para os outros dias necessários. Como meu backup é diferenciado para cada dia da semana, fiz o mesmo procedimento 5 vezes (de segunda a sexta).
OBS.: Lembre-se de alterar a variável "DIA" que está na linha 6 para não correr o risco de apagar dados por engano.
Para tornar os scripts executáveis faça o seguinte:
# chmod +x bkp-segunda
Para começar, antes de mais nada precisaremos definir um local para guardar os scripts que serão criados.
Crie a pasta /script-backup:
# mkdir /script-backup
# cd /script-backup
Para cada dia da semana criei uma pasta dentro do meu drive (HD externo) e dei permissão total.
Antes precisei montar a partição (sdb1 é onde está meu HD externo ligado na USB):
# mount /dev/sdb1 /backup
# mkdir /backup/segunda
# chmod 777 /backup/segunda
.
.
. # mkdir /backup/sexta
# chmod 777 /backup/sexta
# umount /dev/sdb1
Esta é uma forma mais organizada de armazenar os backups. Crie as pastas de acordo com a necessidade, colocando o nome de acordo com o dia da semana.
Para criar os scripts, abra seu editor de textos (no meu caso uso o VIM) e acrescente o código abaixo. Salve dentro da pasta /script-backup:
# vim bkp-segunda
Faça este mesmo procedimento para os outros dias necessários. Como meu backup é diferenciado para cada dia da semana, fiz o mesmo procedimento 5 vezes (de segunda a sexta).
OBS.: Lembre-se de alterar a variável "DIA" que está na linha 6 para não correr o risco de apagar dados por engano.
#######################################
# SCRIPT BACKUP DIÁRIO SERVIDOR DADOS #
#######################################
# DEFINE AS VARIÁVEIS QUE SERÃO UTILIZADAS
DIA=segunda-feira
DATA=`date +%d-%m-%Y-%H.%M`
# MONTA O PONTO DE MONTAGEM /BACKUP
mount /dev/sdb1 /backup
montado=`mount | grep /backup`
# SE A MONTAGEM NÃO ESTIVER UP ENTÃO FECHA, CASO CONTRÁRIO REALIZA O BACKUP
if [ -z "$montado" ]; then
exit 1
else
# APAGA OS BACKUPS ANTIGOS DO MESMO DIA DA SEMANA
rm -rf /backup/"$DIA"/*.tar.gz
# COMPACTA TODO O CONTEÚDO DAS PASTAS DENTRO DE /DADOS INDIVIDUALMENTE.
tar -zcvf /backup/"$DIA"/contabil-"$DATA".tar.gz /dados/contabil/
tar -zcvf /backup/"$DIA"/diretoria-"$DATA".tar.gz /dados/diretoria/
tar -zcvf /backup/"$DIA"/financeiro-"$DATA".tar.gz /dados/financeiro/
tar -zcvf /backup/"$DIA"/fiscal-"$DATA".tar.gz /dados/fiscal/
tar -zcvf /backup/"$DIA"/pessoal-"$DATA".tar.gz /dados/pessoal/
tar -zcvf /backup/"$DIA"/vendas-"$DATA".tar.gz /dados/vendas/
# DESMONTA O PONTO DE MONTAGEM /BACKUP
umount /backup
fi
# FIM DAS INSTRUÇÕES
# SCRIPT BACKUP DIÁRIO SERVIDOR DADOS #
#######################################
# DEFINE AS VARIÁVEIS QUE SERÃO UTILIZADAS
DIA=segunda-feira
DATA=`date +%d-%m-%Y-%H.%M`
# MONTA O PONTO DE MONTAGEM /BACKUP
mount /dev/sdb1 /backup
montado=`mount | grep /backup`
# SE A MONTAGEM NÃO ESTIVER UP ENTÃO FECHA, CASO CONTRÁRIO REALIZA O BACKUP
if [ -z "$montado" ]; then
exit 1
else
# APAGA OS BACKUPS ANTIGOS DO MESMO DIA DA SEMANA
rm -rf /backup/"$DIA"/*.tar.gz
# COMPACTA TODO O CONTEÚDO DAS PASTAS DENTRO DE /DADOS INDIVIDUALMENTE.
tar -zcvf /backup/"$DIA"/contabil-"$DATA".tar.gz /dados/contabil/
tar -zcvf /backup/"$DIA"/diretoria-"$DATA".tar.gz /dados/diretoria/
tar -zcvf /backup/"$DIA"/financeiro-"$DATA".tar.gz /dados/financeiro/
tar -zcvf /backup/"$DIA"/fiscal-"$DATA".tar.gz /dados/fiscal/
tar -zcvf /backup/"$DIA"/pessoal-"$DATA".tar.gz /dados/pessoal/
tar -zcvf /backup/"$DIA"/vendas-"$DATA".tar.gz /dados/vendas/
# DESMONTA O PONTO DE MONTAGEM /BACKUP
umount /backup
fi
# FIM DAS INSTRUÇÕES
Para tornar os scripts executáveis faça o seguinte:
# chmod +x bkp-segunda
vc tem algum coisa sobre scritp de backup em DVDrw??
quero formatar o DVD antes de cada backup