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

Publicado por Pedro Ferrarezi em 28/07/2012

[ Hits: 9.225 ]

 


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

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

Cálculo do desvio padrão no LibreOffice

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

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

Debian/Ubuntu - Conectando banco MySQL via rede com Java

Leitura recomendada

PDF no Linux

Cliente OwnCloud no CentOS Linux

Instalação de interface gráfica no Debian 6

Tim-Web no Linux - Onda Communication MSA501HS USB

Animatubo Linux

  

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