Criar Script que Conecta em Servidores da Rede Local e Copia determinado Arquivo ou Pasta

1. Criar Script que Conecta em Servidores da Rede Local e Copia determinado Arquivo ou Pasta

JOAO PAULO SCOPEL
joaopauloscopel

(usa Ubuntu)

Enviado em 03/10/2018 - 16:44h

Boa tarde Pessoal,

Preciso de ajuda para criar um Script que se conecte com HOSTS locais e copie pastas ou arquivos deles.

Tenho um computador com Ubuntu onde este será utilizado como "servidor", e nele está instalado um HD de 8 TB.
A idéia seria que este computador rodará o SCRIPT que copiará as informações de outros computadores para ele mesmo.

Os HOSTS que quero copiar arquivos ou pastas são todos na minha rede local, são máquinas virtuais rodando outros sistemas e aplicativos LINUX.

Eu encontrei este script na Internet e estou tentando adaptá-lo para minha situação:



#OBS: para funcionar corretamente devera criar um arquivo com o nome 'PASTA' e deixar no mesmo diretorio do script e mudar o caminho da variavel ARQUIVO dentro da funçao @BACKUPPASTAS


#!/bin/bash

INICIO=`date +%d/%m/%Y-%H:%M:%S`
LOG=/var/log/`date +%Y-%m-%d`_BKP_DIARIO.txt
PBACKUP=/mnt/backup #Pasta onde sera colocadao o backup antes da sincronização
#parametro antigo /diretorio/BKPDIARIO
DATA=`date +%d-%b-%Y`
HORAAT=`date +%H:%M`
#HORA= `date +%H:%M:%S`

# FUNCAO CRIA PASTA DIARIA Com a 

   function @CRIAPASTADIARIA () {
      mkdir -p /mnt/backup/$DATA 
	  # parametro antigo /diretorio/BKPDIARIO
      }

# FUNCAO HORA
        function @HORA () {
                HORA=`date +%H:%M`
                }


#FUNCAO COMPACTA PASTAS
#    function @BACKUPPASTAS () {
#
#               ARQUIVO="/mnt/backup"
#                for PASTA in `cat $ARQUIVO`; do
#
#                        LOCAL=`echo $PASTA |awk -F / {'print $NF'}`
#
#                        echo "" >> $LOG
#                        echo " Efetuando Backup da pasta $PASTA" >> $LOG
#                        echo "" >> $LOG
#
#                        tar -czf $PBACKUP/$DATA/$LOCAL.tar.gz $PASTA
#         echo "Escrevendo backup diario em $PBACKUP" >> $LOG
#                done;
#      
#                }


#FUNCAO RODA RSYNC 

   function @RODARSYNC() {
      
      echo " " >> $LOG
      echo " " >> $LOG
      echo "|-----------------------------------------------" >> $LOG
      echo " Sincronização iniciada em $DATA $HORAAT" >> $LOG

	  # Redmine Engenharia
	  
	   sudo sshpass -p "senha" ssh root@192.168.24.87:/var/www/redmine-2.6.6
	   sudo rsync -Cravzp /mnt/backup >> $LOG
      
	  
	  if [ $? = 0 ]; then  #Verifica se a sincronizaçao foi bem sucedida se ela foi bem entra no if se nao cai no else

         echo " Sincronização Finalizada em $DATA $HORAAT" >> $LOG
                   echo "|-----------------------------------------------" >> $LOG
                   echo " " >> $LOG
                   echo " " >> $LOG
                     echo " deletando backups Locais de $PBACKUP $DATA $HORAAT" >> $LOG
                   echo "Backup Deletado com Sucesso de $PBACKUP" >> $LOG
                   echo "Enviando Email de informação para o Administrador" >> $LOG
                   echo "" >> $LOG
               @ENVIAEMAIL # chama a funçao envia email - Backup Sucedido com sucesso

                else
                        echo "Sincronização Mau concluida $DATA $HORAAT" >> $LOG
                        @ENVIAMAILPROBLEMA  # chama a funçao envia email - backup mau Sucedido
                fi


      #rm -rf /DadosObra/BKPDIARIO/*

      }


#FUNCAO QUE ENVIA EMAIL PARA O ADMINISTRADOR
      function @ENVIAEMAIL () {

         EMAIL_FROM="alertas@inobram.com.br"
         EMAIL_TO="ti@inobram.com.br"

         SERVIDOR_SMTP="smtp.gmail.com:587"
         SENHA=****************

         ASSUNTO="$HOSTNAME - $1"
         MENSAGEM=$2

         if [ "$1" == "" ] ;then
         ASSUNTO="BKP DIARIO FEITO"
         fi
         if [ "$2" == "" ] ;then
         MENSAGEM="Backup Realizado com Sucesso e Sincronizado com Servidor de Arquivos"
         fi
         if [ "$3" != "" ] ;then
         MENSAGEM="$2 `cat $3`"
         fi

         sendemail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTo" -m "$MENSAGEM" $ANEXO -a $LOG  -o tls=yes  -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
         echo "Email Enviado com Sucesso para $EMAIL_TO" >> $LOG
         echo " Deletando Arquivo de log do local" >> $LOG   
         rm -rf $LOG
         }


#FUNCAO QUE ENVIA EMAIL DE PROBLEMA CASO NÃO FOR FEITO O RSYNC COM SUCESSO
       function @ENVIAMAILPROBLEMA () {

                EMAIL_FROM="alertas@inobram.com.br"
				EMAIL_TO="ti@inobram.com.br"

				SERVIDOR_SMTP="smtp.gmail.com:587"
				SENHA=******************

                ASSUNTO="$HOSTNAME - $1"
                MENSAGEM=$2

                if [ "$1" == "" ] ;then
                ASSUNTO="BKP DIARIO FEITO"
                fi
                if [ "$2" == "" ] ;then
                MENSAGEM=" ERRO AO FAZER A SINCRONIZAÇÃO DOS DADOS - VERIFIQUE A CONDEXAO COM O SERVIDOR" >> $LOG
                fi
                if [ "$3" != "" ] ;then
                MENSAGEM="$2 `cat $3`"
                fi

                sendemail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTo" -m "$MENSAGEM" $ANEXO -a $LOG  -o tls=yes  -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
            }




@CRIAPASTADIARIA
@BACKUPPASTAS
@RODARSYNC

 


Ou seja, quero criar meu próprio SCRIPT para realizar o backup de dados e informações importantes de todos os serviços da empresa. Eu sei que existem ferramentas OPEN de backup profissional, porém não tive uma boa experiência com BACULA. Por este motivo, pretendo usar o RSYNC. Alguém poderia me auxiliar neste SCRIPT?


  


2. Re: Criar Script que Conecta em Servidores da Rede Local e Copia determinado Arquivo ou Pasta

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 03/10/2018 - 16:50h

tu podes começando aos pouco a construir seu script e depois vai melhorando

criar um scrip que faz somente um rsync
e agenda ele no cron



3. Re: Criar Script que Conecta em Servidores da Rede Local e Copia determinado Arquivo ou Pasta

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 03/10/2018 - 16:51h

https://www.hardware.com.br/tutoriais/backup2/


4. Re: Criar Script que Conecta em Servidores da Rede Local e Copia determinado Arquivo ou Pasta

caio
caionarezzi

(usa CentOS)

Enviado em 03/10/2018 - 21:34h

Esse script esta bem completo, copia e envia um aviso para o ADM, agora já que é local a copia é usa o mount e o cifs para monta e copiar na rede, agora é bom monta um script e ir testando parte a parte para você saber tudo que seu script faz e da maneira que faz ;)
"Se tu o desejas, podes voar, só tens de confiar muito em ti." - Steve Jobs






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts