Script para fazer back up, limpar back ups antigos e enviar e-mail

1. Script para fazer back up, limpar back ups antigos e enviar e-mail

Dionata Suzin
dsmi

(usa CentOS)

Enviado em 14/08/2013 - 21:11h

Buenas...
gostaria de compartilhar alguns pequenos scripts que criei para fazer back up, limpar back ups antigos, e enviar e-mail com os logs, espero que ajude alguem
e aceito sugestões para melhorar os scripts

backup.sh



#Script de backup
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local:/usr/local/bin:/usr/local/bin/sendmail"

DATA=$(date +%d-%m-%Y_%Hh%Mm)
DIR1="/mnt/backup"
DIR2="/work/backup"
LOG="/tmp/log-backup-$DATA.log"

if [ ! -d $DIR1 ]; then
mkdir $DIR1
echo "Diretorio SMB criado!"
elif [ -d $DIR1 ]; then
echo "Diretorio SMB OK!"
else
echo "Erro ao criar diretorio SMB!"
cd ~
./envia_email.sh Erro_no_Back_up Erro_ao_criar_diretorio_/mnt/backup_contate_o_Administrador
fi

if [ ! -d $DIR2 ]; then
mkdir $DIR2
echo "Diretorio backup criado!"
elif [ -d $DIR2 ]; then
echo "Diretorio backup OK!"
else
echo "Erro ao criar diretorio de backup!"
cd ~
./envia_email.sh Erro_no_Back_Up Erro_ao_criar_diretorio_/work/backup_contate_o_administrador
fi

mount -t cifs -o username=administrator,password=******* //192.168.0.250/dados /mnt/backup 2> /dev/null
AUX=$(ls $DIR1 | wc -l)
if [ $AUX = 0 ]; then
echo "Erro ao montar unidade de backup!"
cd ~
./envia_email.sh Erro_no_Back_Up Erro_ao_montar_unidade_de_Back_up_contate_o_administrador
else
cp -rfv $DIR1 $DIR2/bkp_$DATA &> $LOG
echo "Criado log de backup $LOG"
cd ~
./envia_email.sh Back_Up_com_Sucesso Back_up_Server_Realizado_com_Sucesso
fi



limpa_back_up.sh



#script para deletar backup(s) antigo(s)
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"

DIR="/work/backup"
DIAS="5"
CMD="find $DIR -name "bkp_*" -type d -ctime +$DIAS"
ARQ="/tmp/bkp_old.log"

$CMD &> $ARQ 2> /dev/null
AUX=$(cat $ARQ | wc -l)
if [ $AUX = 0 ]; then
echo "Nenhum backup com mais de $DIAS dia(s) para excluir!"
else
$CMD | xargs rm -rf
echo "Backup(s) com mais de $DIAS dia(s) de criaç excluido(s)!"
rm -rf $ARQ
fi



envia_email.sh




#/bin/bash

EMAIL_FROM="dionata@mauinfogames.com.br"
EMAIL_TO="dionata@mauinfogames.com.br"

#Servidor SMTP e porta utilizada
SERVIDOR_SMTP="mail.mauinfogames.com.br:587"
SENHA=***********

ASSUNTO="$1"
MENSAGEM=$2

if [ "$1" == "" ] ;then
ASSUNTO="SEM ASSUNTO"
fi
if [ "$2" == "" ] ;then
MENSAGEM="SEM MENSAGEM"
fi
if [ "$3" != "" ] ;then
MENSAGEM="$2 `cat $3`"
fi



sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTO" -m "$MENSAGEM" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA




  


2. Re: Script para fazer back up, limpar back ups antigos e enviar e-mail

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 14/08/2013 - 21:19h

tu podes contribuir com seus script na sessão de script


3. Re: Script para fazer back up, limpar back ups antigos e enviar e-mail

Dionata Suzin
dsmi

(usa CentOS)

Enviado em 14/08/2013 - 21:33h

Daniel já postei o script na seção correta, grato pela dica!


4. Re: Script para fazer back up, limpar back ups antigos e enviar e-mail

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 14/08/2013 - 21:41h

dsmi escreveu:

Daniel já postei o script na seção correta, grato pela dica!


blz , qualquer dúvida estamos ai


5. Script

Janduy Euclides da Silva
janduy

(usa CentOS)

Enviado em 12/02/2014 - 10:07h

Bom dia cara muito bom o seu script parabéns olha eu só não estou conseguindo enviar o alerta por email quero saber por que uso o Office365 como faço para configurar o servidor IMAP nesse script?

Local ele criou os backups muito bom mesmo o script!



6. Re: Script para fazer back up, limpar back ups antigos e enviar e-mail

Dionata Suzin
dsmi

(usa CentOS)

Enviado em 12/02/2014 - 10:30h

Cara provavelmente você só precise instalar o sendmail, segue link para instalação no debian

http://www.nogsantos.com.br/instalacao-sendmail-debian-squeeze-e-ubuntu




7. Re: Script para fazer back up, limpar back ups antigos e enviar e-mail

Dionata Suzin
dsmi

(usa CentOS)

Enviado em 12/02/2014 - 10:37h

fiz algumas alterações no script para simplificar, ai fica tudo em um script só

segue abaixo

[code]
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local:/usr/local/bin:/usr/local/bin/sendmail"

#variaveis BackUp
#Data
DATA=$(date +%d-%m-%Y_%Hh%Mm)

#enfermagem AD
DIR32="/mnt/enferadOR"
DIR33="/mnt/enferadDEST"

#Log
LOG="/tmp/log-backup-$DATA.log"

#Variaveis envia e-mails
EMAIL_FROM="ti@cedilrs.com.br"
EMAIL_TO="ti@cedilrs.com.br"
SERVIDOR_SMTP="smtp.cedilrs.com.br:587"
SENHA=**************
ASSUNTO="$1"
MENSAGEM=$2

#Enfermagem AD
if [ ! -d $DIR32 ]; then
mkdir $DIR32
echo "Diretorio Enfermagem AD criado!"
elif [ -d $DIR32 ]; then
echo "Diretorio Enfermagem AD OK!"
else
echo "Erro ao criar diretorio Enfermagem AD!"
cd ~
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "Erro no Backup" -m "Erro ao criar diretorio /mnt/enferadOR contate o Administrador" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
fi

if [ ! -d $DIR33 ]; then
mkdir $DIR33
echo "Diretorio backup Enfermagem AD criado!"
elif [ -d $DIR33 ]; then
echo "Diretorio backup Enfermagem AD OK!"
else
echo "Erro ao criar diretorio de destino backup Enfermagem AD!"
cd ~
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "Erro no Backup" -m "Erro ao criar diretorio /mnt/enferad contate o administrador" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
fi

#Enfermagem AD
mount -t cifs -o username=operador.backup,password=************* //10.1.1.5/Enfermagem /mnt/enferadOR 2> /dev/null
mount -t cifs -o username=admin,password=******** //10.1.1.254/backup/enfermagem /mnt/enferadDEST 2> /dev/null


#Enfermagem AD
AUX=$(ls $DIR32 | wc -l)
if [ $AUX = 1 ]; then
echo "Erro ao montar unidade de backup Enfermagem AD!"
cd ~
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "Erro no Backup" -m "Erro ao montar unidade de Backup da Enfermagem AD contate o administrador" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
else
cp -rfv $DIR32 $DIR33/bkp_$DATA &> $LOG
echo "Criado log de backup $LOG"
cd ~
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "Back Up com Sucesso" -m "Back up da Enfermagem AD Realizado com Sucesso" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
fi

#Enfermagem AD
$CMD &> $ARQ 2> /dev/null
AUX=$(cat $ARQ | wc -l)
if [ $AUX = 0 ]; then
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "Exclusao de Back Ups antigos" -m "Nenhum Back up com mais de 5 dias para exclusao" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
else
$CMD | xargs rm -rf
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "Exclusao de Back Ups antigos" -m "Back Ups com mais de 5 dias excluidos" $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
rm -rf $ARQ
fi

[\code]
atento para o seguinte, neste novo script ele mapeia a origem e o destino, entao os diretorios com final OR = Origem e com final DEST = Destino, após criar o script basta instalar o sendmail que ele vai fazer backup, apagar os antigos e enviar o alerta para seu e-mail






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts