Backup automatico em dois computadores via local e NFS

Publicado por David 01/02/2008

[ Hits: 8.271 ]

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

Script para converter um diretório de arquivos em mp3 para ogg.

Script de backup de múltiplos diretórios + LOG

Shuffle - Simples shell script que embaralha um array

Configuração do repositório do Slackware Current

youtube2mp3


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts