23 julho 2008

script de backup para linux

Caros amigos,

Conforme meu ultimo post sobre FERRAMENTINHA importante para Backup no LINUX, estarei disponibilizando neste post eu SCRIPT baseado no ShellScript. Eu o utilizo para fazer backup do Linux para um servidor Windows 2003 Server onde encontra-se minha fita DAT. Nele adaptei algumas funções de controle, tais como:

  • Compactar os diretórios a serem backupeados com o nome do backup seguido da data.
  • Gravação de um log com o status do processo.
  • Uma forma de gerenciar a quantidade de arquivos de backup contidas no diretório, como; limpar o diretório com os backups maiores do que 30 dias.
  • Gravação dos dados utilizando os comandos RSYNC, MOUNT, FIND e TAR para gravação no Sistema operacional Windows 2003 Server.

Estarei colocando abaixo, o SCRIPT por completo e detalhando cada linha dele;

#!/bin/sh (o tipo de bash que sera utilizado o script)


#Syncroniza dados (linha de comentario)

RSYNC() { [ $? == 0 ] && echo "`date +%x^%X` - Sincronismo $1 executado com sucesso!" >> /var/log/backup.log || echo "`date +%x^%X` - Sincronismo $1 executado} (Vamos iniciar um funçãozinha para a gravação do LOG do processo de backup)


mount -t smbfs -o username=xxx,password=xxx //servidor/bkplinux /mnt/bkpdados (Neste caso estou montando um volume no Servidor Windows 2003 Server, onde encontra-se uma pasta compartilha chamada Bkplinux. Isso não é nada diferente que voce utilizar um compartilhamento de pasta pelo Windows)

MOUNT='mount | grep /mnt/bkpdados' (Pergunto aqui para o Linux, existe o compartilhamento)

if [ -z "$MOUNT" ]; then (Vamos iniciar o laço. Neste inicio estou perguntando se o volume que montei acima esta ok. Caso positivo, continuaremos o processo abaixo. em caso de negativo, para o processo por aqui.)

exit 1 (Sai do processo caso o volume não foi montado)

else (Se estiver tudo correto então faça isso abaixo)


tar cfz - /usr/local/squid/etc/* > /home/backup/bkpsquid-`date +%d-%m-%y`.tar.bz2 (Vamos compactar todos os arquivo contidos /usr/local/squid/etc e gravar o arquivo /home/backup/bkpsquid-01-01-2008.tar.bz2)

find /home/backup/. -daystart ! -mtime -30 -exec rm -f {} \; (Procuro tudo que esta contido no diretorio backup com mais de 30 dias de arquivamento e apagado caso isso ocorra)

rsync -Cavz /home/backup/* /mnt/bkpdados/serv001 (Com este comando vamos sincronizar as informações contidas no LINUX para o WINDOWS 2003 SERVER. As opções uitlizadas no RSYNC -Cavz, peço para ele sincronizar tudo que esta no diretório, caso este arquivos ja existam, sincronize apenas os que teverem sidos alterados ou novos)

umount /mnt/bkpdados (Desmonte o volume da pasta compartilhada)

RSYNC "RSYNC" (Aqui estou pedindo para ele gravar no log, se tudo ocorreu com sucesso ou não)

fi (finaliza o laço)

<Clique Aqui para fazer download do Script>

Que for utilizar este script, após o download será necessário algumas regrinhas para o bom funcionamento dele.

  1. Após fazer download, coloque ele na pasta que melhor lhe atender:
  2. Torne o arquivo executavel. #chmod 0775 /<pasta escolhida>/bkpgeral.sh
  3. Adicione no CROND <Clique aqui e veja o post sobre CROND> para ser executado no momento que lhe convir.
  4. Verifique os Logs para saber como foi a gerção dos arquivos.

Até o próximo post....

Postar um comentário