Pular para o conteúdo

Erro ao executar script pelo crontab que envia email com log de backup.

Responder tópico
  • Denunciar
  • Indicar

1. Erro ao executar script pelo crontab que envia email com log de backup.

Enviado em 13/03/2015 - 02:12h

Olá pessoal to com o seguinte problema.

Eu tenho um script que pega o backup compactado no servidor de arquivos da minha rede, e copia para um servidor na locaweb via rsync, ao final gera um arquivo de log e envia por email.

Se eu executo manualmente, ele funciona que é uma beleza, copia o backup pra nuvem e envia o email com o log pra min certinho, porém pelo crontab ele faz a copia para a nuvem mas não envia o email.

Por favor mestres me ajudem!!!

ai vai o script:


#!/bin/bash
log=/tmp/`date +%d%m%Y`.txt
dest_log=/tmp/
declare -a arquivos


echo "

######################################################################
# Script de Backup
######################################################################" >> $log

echo "______________________________________________________________________" >> $log
echo "INICIO" >> $log
echo "______________________________________________________________________" >> $log
echo "DIA" `date +%d/%m/%Y` >> $log
echo "HORA" `date +%H:%M:%S` >> $log
echo "______________________________________________________________________" >> $log

# DIRETORIO DOS BACKUPS
######################## INICIO
diretorio=/mnt/backup/
arquivos=(`ls -tr $diretorio`)
x=0;
while [ $x != ${#arquivos[@]} ]
do
let "x = x +1"
done
let "x = x -1"
echo "NOME DO BACKUP: "`ls -lah $diretorio${arquivos[$x]}` >> $log
echo " " >> $log
echo "STATUS DE ENVIO: "`rsync -v $diretorio${arquivos[$x]} attraktivaprime@attraktivaprime.com.br:/home/storage/b/2e/d1/attraktivaprime/public_html/backup` >> $log
y=0;
p=1;
echo " " >> $log
echo "______________________________________________________________________" >> $log
######################## FIM

df -h >> $log
echo "______________________________________________________________________" >> $log
echo "FIM" >> $log
echo "______________________________________________________________________" >> $log

# Apagando log mais antigo
TIME_DEL=+30
procuraedestroidif(){
find $dest_log -name "*.txt" -mtime $TIME_DEL -exec rm -f {} ";"
if [ $? -eq 0 ] ; then
echo "Log de backup mais antigo eliminado com sucesso!" >> $log
else
echo "Erro durante a busca e destruição do log de backup antigo!" >> $log
fi
}
procuraedestroidif

TIME_DEL=+7
procuraedestroibkp(){
find $diretorio -name "*.zip" -mtime $TIME_DEL -exec rm -f {} ";"
if [ $? -eq 0 ] ; then
echo "Backups com mais de 7 dias eliminado com sucesso!" >> $log
else
echo "Erro durante a busca e destruição do log de backup antigo!" >> $log
fi
}
procuraedestroibkp

echo "######################################################################" >> $log

# Envia Email
EMAIL_DE="ti@attraktiva.com.br"
EMAIL_PARA="ti@attraktiva.com.br"
SERVIDOR_SMTP="smtp.attraktiva.com.br:587"
SENHA='**************'
ASSUNTO="RELATORIO DE BACKUPS DO SQL `date +%d/%m/%Y`"
MENSAGEM="message-file=$log"
ANEXO=""
sendEmail -f $EMAIL_DE -t $EMAIL_PARA -u "$ASSUNTO" -o "$MENSAGEM" -a $ANEXO -s $SERVIDOR_SMTP -xu $EMAIL_DE -xp $SENHA

exit 0

Responder tópico

2. Re: Erro ao executar script pelo crontab que envia email com log de backup.

Enviado em 13/03/2015 - 16:01h

Cara, é um chute, mas tenta colocar o caminho completo do sendmail, pois pode ser o path do usuario da crontab.

o Rsync em geral fica na /usr/bin já o sendmail deve estar em algo tipo /usr/sbin e pode ser que uma lib estaja no path e a outra não ...

só um chute mesmo ... tentar tipo /usr/sbin/sendmail ...

do mais meu conselho é colocar uns pontos de log para debug.

3. Re: Erro ao executar script pelo crontab que envia email com log de backup.

Enviado em 13/03/2015 - 18:11h

fdmarp escreveu:

Cara, é um chute, mas tenta colocar o caminho completo do sendmail, pois pode ser o path do usuario da crontab.

o Rsync em geral fica na /usr/bin já o sendmail deve estar em algo tipo /usr/sbin e pode ser que uma lib estaja no path e a outra não ...

só um chute mesmo ... tentar tipo /usr/sbin/sendmail ...

do mais meu conselho é colocar uns pontos de log para debug.
Cara obrigado era isso msm, passei o /usr/local/bin/sendEmail e funcionou.

valeuuuu!!!


Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder