在Docker环境中备份MySQL并发送备份邮件

本文详细介绍了如何在Docker环境中备份MySQL数据库,并将备份文件通过邮件发送。首先,文章阐述了整体思路,包括备份数据库、发送邮件及清理旧备份。接着,讲解了邮件服务的前置准备,如在CentOS上安装邮件服务和下载证书。然后,提供了在Docker中执行MySQL备份的脚本,并指导如何设置定时任务以实现每日自动备份。最后,提醒读者可能会频繁收到备份邮件的通知。

整体思路

  • 备份数据库
  • 发送备份文件至邮件
  • 清理30天前的备份

前置处理(邮件服务准备)

mailx 在CentOS中一般是安装好的, ~/.certs 针对SSL协议的邮件服务需要下载对应的邮件服务的证书

  1. 检测并安装邮件服务

    # 检测是否安装了邮件服务
    mail
    # 或
    mailx
    
    # 安装mail
    yum install -y mailx
    yum install -y nss-tools
    
  2. 下载邮件证书

这里以 QQ邮箱 为例,下载邮箱系统的SSL证书,确保系统信任该证书

```shell
mkdir -p ~/.certs
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i qq.crt
certutil -L -d ~/.certs
```
  1. 编辑配置文件

    1. 编辑邮件配置文件

      vim /etc/mail.rc
      
    2. 追加以下内容,根据实际情况变动

      set from=example@qq.com
      set smtp=smtps://smtp.qq.com:465                                              
      set smtp-auth-user=example@qq.com
      set smtp-auth-password=**************
      set smtp-auth=login
      set ssl-verify=ignore
      set nss-config-dir=/root/.certs
      
      示例 含义
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值