linux docker容器MySQL自动备份发送到邮箱

文章讲述了如何配置mailx以忽略SSL验证,并设置SMTP参数用于发送邮件。接着,创建了一个bash脚本`bak_mysql.sh`,该脚本用于备份Docker中的MySQL数据,打包成zip文件,然后通过mailx发送到指定邮箱。此外,还设置了cronjob每天凌晨1点20分执行此备份脚本,并且包含了自动清理10天以上旧备份的逻辑。
摘要由CSDN通过智能技术生成

首先配置mail

$yum install mailx
$vim /etc/mail.rc
#以下内容添加至文件末尾
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
# 发送地址
set from=xxxxxx@qq.com
# 邮件服务商smtp服务地址
set smtp=smtps://smtp.qq.com:465
# 登陆邮箱,同上发送地址相同即可
set smtp-auth-user=xxxxx@qq.com
# 邮箱登陆授权密码,不是登陆密码,SMTP服务通常都是授权码登陆,开通SMTP服务时会提供登陆授权码
set smtp-auth-password=xxxxxx
set smtp-auth=login

开启mail

 书写脚本创建脚本文件bak_mysql.sh

#!/bin/bash
#时间
export NOW="$(date +"%Y-%m-%d")"
#docker里的备份路径,这里指你搭建MySQL容器时映射准备好存放MySQL备份的和主机的映射路径
export DATA_DIR=/tmp/mysqlbak
#执行备份 -u账号-p密码
docker exec mysql /bin/bash -c "mysqldump -uxxxx -pxxxx --set-gtid-purged=OFF css > $DATA_DIR/css$NOW.sql"
#执行打包
zip -vr /usr/local/docker/mysql/backup/css$NOW.zip  /usr/local/docker/mysql/backup/css$NOW.sql
#执行发送到邮箱
echo "csssql文件" | mail -vs "菜蔬生sql文件" -a /usr/local/docker/mysql/backup/css$NOW.zip xxxx@qq.com
#定时删除备份
find /usr/local/docker/mysql/backup -name "css*.sql" -type f -mtime +10 -exec rm -rf {} \; > /dev/null 2>&1
find /usr/local/docker/mysql/backup -name "css*.zip" -type f -mtime +10 -exec rm -rf {} \; > /dev/null 2>&1

授权

授予权限:chmod +x /usr/local/docker/mysql/bak_mysql.sh

到该目录下运行调试是否可行 调试运行:./bak_mysql.sh

创建定时

执行:crontab -e

在最底下添加一行:20 01 * * *  /usr/local/docker/mysql/bak_mysql.sh

保存,并且执行:crontab -l。列表中就会出现这一行了。

备份时间为每天的早上01点20分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值