MySQL 自动备份并发送到邮箱
46

mysql 备份

准备工作

  • 阅读本文章之前请先查看 mutt 邮件发送 并搭建好邮件发送环境
  • 本文假定你已经搭建好了 mysql 环境,并且能使用 msyqldump 命令

备份脚本

mkdir -p /data/backup/mysql
chown xxx:xxx /data/backup
mkdir /opt/shells

vim /data/shells/mysqlBackup.sh

#!/bin/bash

BACKUP_PATH=/data/backup/mysql
CURRENT_TIME=$(date +%Y%m%d_%H%M%S)

[ ! -d "$BACKUP_PATH" ] && mkdir -p "$BACKUP_PATH"

#数据库地址
HOST=localhost
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=password

# 要备份的数据库名
DATABASE=blog
FILE_GZ=${BACKUP_PATH}/$CURRENT_TIME.$DATABASE.sql.gz
/usr/local/bin/mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE  | gzip > $FILE_GZ # 此处必须要用绝对路径

# 所有数据库
#mysqldump --all-databases -xxxxx

echo "数据库备份--$FILE_GZ" | mutt -s "$DATABASE备份" ucer183@163.com -a $FILE_GZ

# 删除 7 天以前的备份 「注意写法」
cd $BACKUP_PATH
find $BACKUP_PATH -mtime +7 -name "*sql.gz"  -exec rm -f {} \;
chmod u+x mysqlBackup.sh

# 执行下脚本看看有没有错误;
./mysqlBackup.sh

凌晨三点三十分执行一次

crontab -e
30 03 * * * /data/shells/mysqlBackup.sh

do it now

本帖由系统于 2个月前 自动加精
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4

可以在最后加上定期删除备份文件的操作

3个月前

@Echoiii 感谢提议,回头加一个!

3个月前

@Echoiii 已加上

3个月前
Destiny
2个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!