Pequeno sistema de backup (Rsync + SAMBA + Tar + FTP)
Publicado por Sylvio Jollenbeck 13/09/2006
[ Hits: 10.658 ]
Homepage: www.hosannagroup.com.br
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>
######## 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
Atualizar repositório no Linux desabilitando a hibernação do sistema
Backup, restore e leitura de log com Dialog
Monitorando processo do Squid em diferentes redes
APPSOM - Listar e reproduzir músicas, vídeos e imagens
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Preciso resolver um erro de DPKG (0)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta