Pequeno sistema de backup (Rsync + SAMBA + Tar + FTP)

Publicado por Sylvio Jollenbeck 13/09/2006

[ Hits: 10.651 ]

Homepage: www.hosannagroup.com.br

Download sync_back.sh




Explicação rápida sob sua forma de funcionamento: O script consiste em montar uma unidade compartilhada por um servidor/computador Windows utilizando o SAMBA, sincronizar os dados desta unidade montada com um diretório ou disco local (Unix/Linux) através do Rsync, compactação dos dados pela ferramenta Tar e, por fim, enviar esse arquivo compactado para um servidor FTP (precisa configurar o endereço IP, nome de acesso e senha - no final deste script). As funções de backup e formas de backup podem ser alteradas de acordo com as necessidades, esse script deve ser referenciado no agendador de tarefas (Crontab) para ser executado todos os dias em horários determinados pela empresa. Espero ter ajudado. Sylvio Carlos Jollenbeck <sylvio [-arroba-] sdrconsulting.com.br>

  



Esconder código-fonte

######## Script de Backup e Syncronismo ########
########### SDR CONSULTING LTDA #################
######## www.sdrconsulting.com.br ###############
########## FONE: (11) 4141 6258 #################

#!/bin/bash

# 1 - Parte (Variaveis)
# Configuracao das variaveis do script
# ------------------------------------------------------------------------
equi=192.168.10.200
user="storage"
pass="storage"

# Ponto de Montagem
vol="d"
pto=/mnt
dst=/backup/win2000

# Ponto de Backup
bkp_loc=/backup/win2000 # Pasta a ser Backupeada
bkp_dir=/storage/win2000 # Pasta onde sera gerado o Backup
dados=`date "+bkp-"$vol"-%d-%m-%Y.tgz"` # Nome do Arquivo de Backup

# Arquivos de Log's
log_dir=/backup/log_win2000 # Pasta onde sera gerado o LOG
log_okay_sync=`date "+rsync-"$vol"-okay-%d-%m-%Y.txt"` # Nome do Arquivo de LOG
log_erro_sync=`date "+rsync-"$vol"-erro-%d-%m-%Y.txt"` # Nome do Arquivo de LOG
log_okay_bkp=`date "+bak-okay-"$vol"-%d-%m-%Y.txt"` # Nome do Arquivo de LOG
log_erro_bkp=`date "+bak-erro-"$vol"-%d-%m-%Y.txt"` # Nome do Arquivo de LOG

# 2 - Parte (Montando o Volume a ser Backupeado)
# ------------------------------------------------------------------------
echo "--------------------- Montando o Volume de Dados --------------------"
echo "--------------------- Montando o Volume de Dados --------------------" >> $log_dir/$log_okay_sync
echo "--------------------- Montando o Volume de Dados --------------------" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync
echo "Montando o volume a ser sincronizado = " $vol >> $log_dir/$log_okay_sync
echo "Montando o volume a ser sincronizado = " $vol >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync
date "+Volume de dados montados em %d-%m-%Y as %H:%M" >> $log_dir/$log_okay_sync
date "+Volume de dados montados em %d-%m-%Y as %H:%M" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync

mount -t smbfs -o username=$user,password=$pass //$equi/$vol $pto

date "+Volume de dados montado com sucesso %d-%m-%Y as %H:%M"
echo " ---------------------- Volume Montado ------------------------- "
echo "Volume montado com sucesso = " $vol >> $log_dir/$log_okay_sync
echo "Volume montado com sucesso = " $vol >> $log_dir/$log_erro_sync
echo "-----------------------------------------------------------------" >> $log_dir/$log_okay_sync
echo "-----------------------------------------------------------------" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync

# 3 - Parte (Inciando o Sincronismo)
# ------------------------------------------------------------------------
echo "---------------------- Iniciando o Sincronismo ----------------------"
echo "---------------------- Iniciando o Sincronismo ----------------------" >> $log_dir/$log_okay_sync
echo "---------------------- Iniciando o Sincronismo ----------------------" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync
date "+Sistema de Sincronismo iniciado em %d-%m-%Y as %H:%M" >> $log_dir/$log_okay_sync
date "+Sistema de Sincronismo iniciado em %d-%m-%Y as %H:%M" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync
echo "Sistema de Syncronismo iniciado:" >> $log_dir/$log_okay_sync
echo "Sistema de Syncronismo iniciado:" >> $log_dir/$log_erro_sync

rsync -avr $pto $dst 1>> $log_dir/$log_okay_sync 2>> $log_dir/$log_erro_sync

date "+Sistema de sincronismo terminado em %d-%m-%Y as %H:%M"
echo " ---------------------- Fim do Sincronismo ------------------------- "
echo "Sincronismo concluido com sucesso - Por Favor consultar os arquivos de Logs" >> $log_dir/$log_okay_sync
echo "Sincronismo concluido com sucesso - Por Favor consultar os arquivos de Logs" >> $log_dir/$log_erro_sync
echo "-----------------------------------------------------------------" >> $log_dir/$log_okay_sync
echo "-----------------------------------------------------------------" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync

# 4 - Parte (Desmontar o Volume Backupeado)
# ------------------------------------------------------------------------
echo "------------------- Desmontando o Volume de Dados --------------------"
echo "------------------- Desmontando o Volume de Dados --------------------" >> $log_dir/$log_okay_sync
echo "------------------- Desmontando o Volume de Dados --------------------" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync
echo "Desmontando o volume ja sincronizado = " $vol >> $log_dir/$log_okay_sync
echo "Desmontando o volume ja sincronizado = " $vol >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync

umount $pto
date "+Sistema de sincronismo terminado em %d-%m-%Y as %H:%M"
echo " ---------------------- Volume Desmontado ------------------------- "
date "+Volume de dados desmontados em %d-%m-%Y as %H:%M" >> $log_dir/$log_okay_sync
date "+Volume de dados desmontados em %d-%m-%Y as %H:%M" >> $log_dir/$log_erro_sync
echo "" >> $log_dir/$log_okay_sync
echo "" >> $log_dir/$log_erro_sync

# 5 - Parte
# ------------------------------------------------------------------------
echo "---------------------- Iniciando o Backup ----------------------"
echo "---------------------- Iniciando o Backup ----------------------" >> $log_dir/$log_okay_bkp
echo "---------------------- Iniciando o Backup ----------------------" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp
date "+Sistema de Backup iniciado em %d-%m-%Y as %H:%M" >> $log_dir/$log_okay_bkp
date "+Sistema de Backup iniciado em %d-%m-%Y as %H:%M" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp
date "+Backup iniciado em %d-%m-%Y as %H:%M" >> $log_dir/$log_okay_bkp
date "+Backup iniciado em %d-%m-%Y as %H:%M" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp
echo "---------------------- Executando o Backup ----------------------" >> $log_dir/$log_okay_bkp
echo "---------------------- Executando o Backup ----------------------" >> $log_dir/$log_erro_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_okay_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp

tar cvzf $bkp_dir/$dados $bkp_loc 1>> $log_dir/$log_okay_bkp 2>> $log_dir/$log_erro_bkp

echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp
date "+Dados compactados - backup finalizado %d-%m-%Y as %H:%M"
echo " ---------------------- Backup Finalizado ------------------------- "
echo "---------------------- Finalizando o Backup ---------------------" >> $log_dir/$log_okay_bkp
echo "---------------------- Finalizando o Backup ---------------------" >> $log_dir/$log_erro_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_okay_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp
date "+Fim da copia dos arquivos em %d-%m-%Y as %H:%M. Enviando o Backup para servidor de FTP externo" >> $log_dir/$log_okay_bkp
date "+Fim da copia dos arquivos em %d-%m-%Y as %H:%M. Enviando o Backup para servidor de FTP externo" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp

# 6 - Parte (Enviando os dados para o Servidor FTP)
# ------------------------------------------------------------------------
echo "--------------------- Enviando o Backup FTP ---------------------" >> $log_dir/$log_okay_bkp
echo "--------------------- Enviando o Backup FTP ---------------------" >> $log_dir/$log_erro_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_okay_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_erro_bkp
echo "" >> $log_dir/$log_okay_bkp
echo "" >> $log_dir/$log_erro_bkp

ftp -n 192.168.10.69 <<EOF
user storage backup11
binary
cd /
lcd $bkp_dir
put $dados
quit
EOF

date "+Envio do Backup para o Servidor de FTP terminado em %d-%m-%Y as %H:%M" >> $log_dir/$log_okay_bkp
date "+Envio do Backup para o Servidor de FTP terminado em %d-%m-%Y as %H:%M" >> $log_dir/$log_erro_bkp
echo "Backup concluido com sucesso - Por Favor consultar os arquivos de Logs" >> $log_dir/$log_okay_bkp
echo "Backup concluido com sucesso - Por Favor consultar os arquivos de Logs" >> $log_dir/$log_erro_bkp
echo " ----------------------- Fim do Backup ------------------------- "
echo "-----------------------------------------------------------------" >> $log_dir/$log_okay_bkp
echo "-----------------------------------------------------------------" >> $log_dir/$log_erro_bkp
exit 0 

Scripts recomendados

envia-bakcup

Acompanhamento de log squid com hora real

Intervalo de tempo v.2 - Corrigido

Firewall Dinamico

Cronometro em shell


  

Comentários
[1] Comentário enviado por difyca em 13/09/2006 - 15:39h

Gostei do script foi de Muita ajuda na realização de uns Backups em minha rede de computadores


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts