Backup poderoso e automatizado combinando 7-Zip + head + cron

Publicado por Pedro Ferrarezi em 28/07/2012

[ Hits: 9.293 ]

 


Backup poderoso e automatizado combinando 7-Zip + head + cron



Uma das necessidades que encontrei, foi criar um backup com uma taxa de compressão alta e que rodasse todos os dias de maneira automática em um servidor storage.

Então, fiz alguns testes comparando os resultados de taxa de compressão do 7-Zip, bzip2 e gzip.

Implementando

Assim que entrei na empresa onde estou trabalhando hoje, reestruturei o setor de TI, para funcionar mais "suave".

Os 2 últimos foram mais rápidos para fazer o backup, mas no meu caso, preciso de taxa de compressão alta, não desempenho, pois tenho um tempo bom para que o backup rode sem problemas, e não tenho muito espaço (por questões temporárias de aprovação de orçamento $).

Decidi então, optar por usar o 7-Zip, como meu compactador padrão para os backups.

E devido à falta de espaço citada, eu também não posso guardar muitos backups, visto que a política adotada pela empresa é backup completo de tudo, todo dia.

Isso cria a necessidade de ficar apagando backups praticamente todo dia, ou no máximo a cada semana. É aí que entra o Cron, combinado com o comando head do GNU/Linux.

Deixo então a dica, mostrando como usar essa opção na infra de TI.

O Cron e o comando head estão disponíveis na maioria das distribuições GNU/Linux.

Para quem usa Debian ou derivados, o 7-Zip pode ser instalado através do comando:

# apt-get update
# apt-get install p7zip-full


Feito isso crie um script shell e coloque na pasta de sua preferência, o meu coloquei em "/root".

Para meu uso, eu criei o seguinte script, que faz backup da pasta do compartilhamento Samba, lixeira do Samba e uma pasta do software de contabilidade:

#!/bin/bash
cd /srv/
PASTA="`pwd`/bk-ger`date +%d-%m-%Y.%H;%M;%S`hs"
mkdir $PASTA
echo "INICIANDO BACKUP EM `date +%d-%m-%Y.%H:%M:%S`hs" >> $PASTA/bkp-geral-`date +%d-%m-%Y`.log

# Faz o backup das pastas que estão em /srv:
cd PUBLIC/
7z a /srv/bk-public.7z
cd ../
mv bk-public.7z $PASTA/

cd PASTA_SISTEMA/
7z a /srv/bk-pasta-sistema.7z
cd ../
mv bk-pasta-sistema.7z $PASTA/

cd LIXEIRAS/
7z a /srv/bk-lixeiras.7z
cd ../
mv bk-lixeiras.7z $PASTA/


# Limpa a pasta de backup mais antiga!:
rm -r `ls /srv/backup/ |grep bk-ger | head -n 1`

echo "BACKUP CONCLUIDO EM `date +%d-%m-%Y.%H:%M:%S`hs" >> $PASTA/bkp-geral-`date +%d-%m-%Y`.log
echo "## PARA RECUPERAR USE: 7ZIP OU BZIP2 ##" >> $PASTA/bkp-geral-`date +%d-%m-%Y`.log
mv $PASTA/ /srv/backup/


Note que, sempre que ele executar, vai apagar o backup mais antigo na pasta "/srv/backup".

Então, se você deseja manter, por exemplo, os 10 últimos backups nesta pasta, comente a linha que tem o comando rm combinado com o head por 10 dias, depois descomente-a.

Agora, edite a tabela do Cron e inclua o horário de sua preferência para o backup rodar.

Digite o comando:

# crontab -e

E inclua uma linha que aponta seu script:

0 14 * * * /root/backup.sh


No caso acima, todos os dias às 2 horas da tarde, o script será executado, gerando o backup.

Espero que ajude alguém.

Abraços a todos.

Outras dicas deste autor

Debian/Ubuntu - Conectando banco MySQL via rede com Java

Convertendo formato de vídeo OGV para AVI

Ubuntu 12.04 com Gnome 3 - Tunando a Aparência com Temas e Ferramentas

Se o LAMP (Linux, Apache, MySQL e PHP) não funcionar no Debian

Organizando bibliotecas .jar + projeto NetBeans em único arquivo .jar

Leitura recomendada

Instalação de uma HP Deskjet 3535 no Slackware 10.2

Microsoft Office 2007 funcionando perfeitamente com Wine

Manual Completo do Ubuntu

Ubuntu sem sudo

Instalando placa wireless Broadcom BCM4328 no Slackware 12.2

  

Comentários
[1] Comentário enviado por ricardoleme em 09/11/2016 - 08:56h

Muito legal a dica!

Surgiu uma dúvida:

Se eu quisesse efetuar o backup apenas dos arquivos alterados nas últimas 24 horas, como eu faria?

Eu sei que com o find eu consigo especificar o -mtime, mas não sei "passar" esse resultado para o 7zip :^)

Acredito que find public -type f -mtime -1

Obrigado!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts