前言:
- 日常备份数据库的操作,用于日常维护,一键操作,操作成功与否一键发送邮件通知。
- 可能代码有点low,大神请给出意见,感谢!

BACK_DIR=/home/backup
DATE=$(date +%F)
MYSQL_USER=root
MYSQL_PASSWORD=123
RECIVE_USER=13222000226@163.com
SUBJECT="数据库备份状态通知"
[ -d $BACK_DIR ] || mkdir -p $BACK_DIR
START_TIME=$(echo "$(date +%F_%T)")
mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD -B wg > $BACK_DIR/wg-$DATE.sql
if [ $? -ne 0 ];then
echo "备份失败!账号密码不正确"
exit
fi
tar zcPf $BACK_DIR/wg-$DATE.tar.gz $BACK_DIR/wg-$DATE.sql && rm -f $BACK_DIR/wg-$DATE.sql
if [ -f $BACK_DIR/wg-$DATE.tar.gz ];then
echo "wg数据库备份成功!"
END_TIME=$(echo "$(date +%F_%T)")
expires_file=$(find $BACK_DIR -type f -mtime +2)
rm -f $expires_file && echo -e "删除过期文件:\n $expires_file"
echo "正在发送邮件..."
/usr/local/sbin/mail.py $RECIVE_USER $SUBJECT "$(echo -e "开始的时间:$START_TIME\n结束时间:$END_TIME\n备份的数据库:wg\n状态:成功\n清理的过期文件:\n$expires_file" )"
[ $? -eq 0 ] && echo "邮件发送成功" || echo "邮件发送失败"
else
echo "wg数据库备份失败!"
END_TIME=$(echo "$(date +%F_%T)")
expires_file=$(find $BACK_DIR -type f -mtime +2)
rm -f $expires_file && echo -e "删除过期文件:\n $expires_file"
echo "正在发送邮件..."
/usr/local/sbin/mail.py $RECIVE_USER $SUBJECT "$(echo -e "开始的时间:$START_TIME\n结束时间:$END_TIME\n备份的数据库:wg\n状态:失败\n清理的过期文件:\n$expires_file" )"
[ $? -eq 0 ] && echo "邮件发送成功" || echo "邮件发送失败"
fi