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

Publicado por Pedro Ferrarezi em 28/07/2012

[ Hits: 9.339 ]

 


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

Como mudar o teclado do Debian em uma máquina virtual configurada em outro SO

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

Deixe o Ubuntu 13.04 com cara do MacOS X

Sublime Text Editor 2 - Instalando e integrando no Ubuntu 12.04

Leitura recomendada

Firebird 1.5 32 bits no Debian Squeeze 64 bits

Repositório local com Yum

Java no Fedora 16

SET (Social Engineer)

Atualização rápida do kernel 3.17 no Debian, Ubuntu e Linux Mint

  

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