侧边栏壁纸
博主头像
成云博主等级

行动起来,活在当下

  • 累计撰写 40 篇文章
  • 累计创建 25 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

centos 配置mysql数据库定时备份功能

佳航
2021-04-01 / 0 评论 / 0 点赞 / 1783 阅读 / 2923 字

今天写个centos上mysql每天按时备份数据库到qq邮箱,下面记录下备份流程:
通过126邮箱进行发送邮件 发送到qq邮箱,主要流程如下:

sudo yum install nss-tools
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/126.crt
certutil -A -n "GeoTrust SSL CA" -t "P,P,P" -d ~/.certs -i ~/.certs/126.crt
certutil -A -n "GeoTrust Global CA" -t "P,P,P" -d ~/.certs -i ~/.certs/126.crt
certutil -L -d /root/.certs

上面完成126证书认证功能,下面是测试下功能:

echo "Hello" | mail -v -s "test" *******@qq.com  

这个时候以为没有设置mail会报错:

send-mail: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

设置下mail.rc:

vi /etc/mail.rc

set bsdcompat
set smtp=smtps://smtp.126.com:465
set from=****@126.com #换成你自己的邮箱地址
set smtp-auth=login
set smtp-auth-user=*****@126.com  #换成你自己的邮箱地址
set smtp-auth-password=******# 你的授权码,使用smtp需要打开授权,不能使用原来的密码
set ssl-verify=ignore
set nss-config-dir=/root/.certs

此时测试就可以正常发送了:

  echo "Hello" | mail -v -s "test" *****@qq.com

下面是对mysql创建一个sql_back.sh脚本定时备份数据库

vi mysql_back/sql_back.sh 

#!/bin/sh
d=`date "+%Y-%m-%d_%H:%M:%S"`
/usr/local/mysql/bin/mysqldump -uroot -p***** 【数据库名】> /root/mysql_back/back.sql
tar zcvfP /root/mysql_back/db_${d}.sql.tar.gz  /root/mysql_back/back.sql
echo 'email content' | mail -a /root/mysql_back/db_${d}.sql.tar.gz -s ${d}+'客户端数据库备份' *******@qq.com
rm -rf /root/mysql_back/db_${d}.sql.tar.gz

保存好之后执行发送命令看是否能发送邮件.

 sh mysql_back/sql_back.sh 

可以了。。

在定时器中设置每天零点发送任务:

crontab -e
0 0 * * *   /root/mysql_back/sql_back.sh

完美实现发送邮件,备份下

0

评论区