EddyBin
(usa CentOS)
Enviado em 12/07/2015 - 14:55h
Claro, Vamos la .
O script é dividido em dois arquivos ( functions.sh e backup_diario.sh)
No arquivo functions.sh, eu criei todas as funções que fazem funcionar o script, como
gerar logs, conectar no mysql , e copiar os arquivos para o servidor remoto como rsync.
Já no arquivo backup_diario.sh, eu chamo o arquivo functions, e montei uma lógica que
faz a verificação de alguns erros etc.
Segue abaixo:
functions.sh
#!/bin/bash
#================================================================
# funcoes.sh
#
# Funcoes auxiliares para rotina de backup
#===============================================================
DATA=`date +%Y-%m-%d -d '1 days ago'`
LOG=/var/log/recordsCLIENTE.log
# Funcao que gera os logs
function log() {
MSG="[`date`] $@"
echo $MSG >> $LOG
}
# Funcao que gera lista de comparacao
function fn_connection_mysql() {
log " Coletando Informações do Banco de Dados (Servidor XXX.XXX.XXX)...."
mysql -u usuario -psenha banco -hXXX.XXX.XXX -e 'select
concat(uniqueid, ".gsm") from `call` where username = "10477712" and
nasipaddress = "XXX.XXX.XXX" and terminatecause = "ANSWER" and
stoptime like "'$DATA'%";' | grep -v concat > /root/output_day_ago.txt
if [[ $? -eq 0 ]]; then #
return 0;
fi
return 1;
}
function fn_sync_records () {
rsync -Cavhh --files-from=/root/output_day_ago.txt /var/spool/asterisk/monitor/ -e "sudo ssh -p XXX" XXX.XXX.XXX:/mnt/gravacao/gravacao/
if [[ $? -eq 0 ]]; then #
return 0;
fi
return 1;
-------------------------------------------
backup_diario.sh:
#!/bin/bash
# Inicio do Script
INICIO=`date +%d/%m/%Y-%H:%M:%S`
DATA=`date +%Y-%m-%d -d '1 days ago'`
#----------------
#CONFIGURACOES
#----------------
cd /scripts/backup_CLIENTE
source ./functions.sh
# Inicia o script
log " Sincronização iniciada em $INICIO...."
if ( ! fn_connection_mysql); then
log " ERRO: Por favor, leia o Manual do MYSQL...."
else
log " Lista Gerada com Sucesso....."
sleep 5
log "Iniciando Cópia das gravações para HD EXTERNO, servidor (XXX.XXX.XXX)...,"
if ( ! fn_sync_records); then
log " ERRO: Não foi possível conectar no servidor, ou o comando rsync esta incorreto...."
log " Gravações não Copiadas....."
else
sleep 3
log " Gravações Copiadas com Sucesso...."
fi
fi
FINAL=`date +%d/%m/%Y-%H:%M:%S`
log " Sincronização Finalizada em $FINAL...."
Bom, esse é meu script, ele esta funcionamento perfeitamente, como já mencionei aos senhores, a ultima
coisa que eu precisava, era mandar um e-mail pro monitoramento com as informações geradas no log
do dia. Ai então a necessidade de cortar as informações que já foram geradas anteriormente e enviar por
e-mail apenas a ultima vez.
Novamente, desde já agradeço imensamente a ajuda de vocês.
Atenciosamente,
Edir Bonametti