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 [email protected]:/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="[email protected]"
EMAIL_TO="[email protected]"

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="[email protected]"
EMAIL_TO="[email protected]"

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts