
私のサイトで毎週バックアップを実行し、正常に動作する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
質問は、バックアップが完了した後に私に電子メールを送信する方法を教えてくれる人がいますか?
Bashを初めて使用するのに何をしているのかわかりません。
答え1
crontabファイルを編集して以下を追加します。
MAILTO=your.email@your_provider.com
スクリプトの最後に以下を追加します。
echo 'backup finished', $FILE
cron
コマンド実行のすべての出力は通常、各電子メールで送信されます。あなたのスクリプトが自動的に実行されるように見える電子メールはありません。
MAILTO を追加しないと、crontab を実行しているユーザーにメールが送信されます。 IMHOこれを明示的に指定することをお勧めします。
答え2
Bashスクリプトの最後に次の行を追加できます。
echo -e "バックアップレポートの送信:\n $DB_NAME および $FILE バックアップ完了" mutt -s "$NOW バックアップレポート" |