首先配置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分。