Backup automatico em dois computadores via local e NFS

Publicado por David 01/02/2008

[ Hits: 8.813 ]

Homepage: http://twitter.com/dias_david

Download bkp.gz




Esse script realiza backups diários pelo CRON. Compacta pastas e envia localmente; depois por NFS a outra máquina.

Gera logs diários de cada ação, além de não fazer mais do que um backup diários, mantendo o controle e evitando sobrescrição de arquivos.

Como gostei muito mesmo, resolvi compartilhar com todo.

  



Esconder código-fonte

#!/bin/sh
#Script para backup dos arquivos automatizados.

# Define variaveis.
# Pastas a serem dadas backups. Arquivos enderecos completos.
pastas="/Curso"
# Local do Servidor NFS que devera ser enviado o arquivo de backup.
servidor="192.168.20.174"
# Pasta de Backup do Servidor NFS. Caminho completo.
folder="/bkp"
# Caminho completo da pasta onde o servidor devera ser montado.
localnfs="/root/bkps"
# Caminho completo para onde os arquivos locais devem ser backupeados.
folder_local="/home/bkp"
# Extensao da data dos arquivos de backup.
ext_data="`date +%d-%m-%Y`"

# Checka pela execucao do root.
if [ `id -u` != 0 ]; then
echo "Voce nao e o root"
exit 0;
fi


# Checka se o backup ja foi realizado.
if [ -e /home/bkp/log-$ext_data ]; then
echo "Um backup ja foi realizado hoje"
exit 0;
fi

# Checka se a pasta existe.
if [ ! -d $folder_local ]; then
echo "Pasta de backup nao existe, criando uma."
mkdir $folder_local;
fi

#Cria o tar;
ls /Curso/* 1> /dev/null 2> /dev/null
if [ $? != 0 ]; then
echo "Nao haviam arquivos para backup em $ext_data" > $folder_local/log-$ext_dat
a ; else
tar -cvzf /home/bkp/bkp_$ext_data.tar.gz $pastas/* 1> $folder_local/log-$ext_dat
a 2> $folder_local/log-$ext_data;
fi

#Envia para o servidor.

if [ -z $servidor ]; then
echo "Nao ha um servidor definido para o backup.. abortando agora"
exit 0;
fi

if [ ! -d $localnfs ]; then
echo "$localnfs nao existe, criando... "
mkdir $localnfs
echo "ok";
fi

mount -t nfs $servidor:$folder $localnfs 2> /dev/null
if [ $? != 0  ]; then
echo "O servidor NFS nao pode ser contatado, notificar administrador" >> $folder                                            _local/log-$ext_data
echo "O servidor NFS nao pode ser contatado, notificar administrador"; else
        if [ -e $localnfs/bkp_status-$ext_data ];then
        echo "Uma copia do backup ja foi enviada ao servidor hoje"
        echo "Ok, mas nao houve novas copias no servidor."
        umount $localnfs
        exit 0;
        fi
echo "Executando backup no servidor"
cp -av $folder_local/bkp_$ext_data.tar.gz $localnfs 1> $localnfs/bkp_status-$ext                                            _data 2> $localnfs/bkp_status-$ext_data
echo "Copia finalizada";
umount $localnfs
fi

# Confirmacao visual
echo "Tudo ok"
exit 0

Scripts recomendados

Pesquisa em arquivos *.odt

Cadastrando usuários no Squid através de Shell Script

Atualiza Leis

Jackpot

Monitor_espaco.sh


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts