Cron 作业和邮件通知

Jas*_*dle 3 bash cron

我有(来自一个教程)cron 工作,它每周在我的网站上进行备份并且工作正常。

#!/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
Run Code Online (Sandbox Code Playgroud)

问题是,有人可以帮助我在备份完成后如何向我发送电子邮件?

我第一次使用 bash,我不确定我在做什么。

Ant*_*hon 6

编辑您的 crontab 文件并添加:

MAILTO=your.email@your_provider.com
Run Code Online (Sandbox Code Playgroud)

并在脚本末尾添加:

echo 'backup finished', $FILE
Run Code Online (Sandbox Code Playgroud)

cron通常从它运行的每封电子邮件的命令发送任何输出。您的脚本似乎在静默运行,因此没有电子邮件。

如果您不添加 MAILTO,邮件将发送给运行 crontab 的用户,恕我直言,最好明确说明。