Cron jobs and mail notification

3

Eu tenho (de um tutorial) trabalho cron que faz backup semanal no meu site e está funcionando bem.

#!/bin/bash
NOW=$(date +"%Y-%m-%d-%H%M")
FILE="mysite.com.$NOW.tar"
BACKUP_DIR="/home/user/backups/"
WWW_DIR="/home/user/public_html/"

DB_USER="my_site_db_username"
DB_PASS="password"
DB_NAME="mysite_dn_name"
DB_FILE="mysite.com.$NOW.sql"

WWW_TRANSFORM='s,^home/username/public_html,www,'
DB_TRANSFORM='s,^home/username/backups,database,'

tar -cvf $BACKUP_DIR/$FILE --transform $WWW_TRANSFORM $WWW_DIR
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_FILE

tar --append --file=$BACKUP_DIR/$FILE --transform $DB_TRANSFORM $BACKUP_DIR/$DB_FILE
rm $BACKUP_DIR/$DB_FILE
gzip -9 $BACKUP_DIR/$FILE

A pergunta é: alguém pode me ajudar como posso fazer quando o backup é feito para me enviar e-mail?

Estou usando o bash pela primeira vez e não tenho certeza do que estou fazendo.

    
por Jason Paddle 26.06.2013 / 14:16

2 respostas

6

Edite seu arquivo crontab e adicione:

MAILTO=your.email@your_provider.com

e no final do script, adicione:

echo 'backup finished', $FILE

cron normalmente envia qualquer saída do comando executado por email. Seu script parece estar em execução silenciosamente, portanto, não há e-mail.

Se você não adicionar o MAILTO, o email irá para o usuário executando o crontab, IMHO, é melhor explicitar isso.

    
por 26.06.2013 / 14:22
4

Você pode adicionar a seguinte linha ao final do seu script bash:

echo -e "Enviando relatório de backup: \ n Backup de $ DB_NAME e $ FILE concluído" | mutt -s "Relatório de backup para $ NOW"

    
por 26.06.2013 / 14:31

Tags