centos7定时备份mysql发送邮件

前几天搞服务器备份发邮件的功能,搞了好长时间都没调通,想必有很多人和我遇到过一样的问题,今天分享出来帮大家解决燃眉之急。我不允许还有不会的童鞋出现。

  1. 安装mailx(邮件服务)

    yum install mailx -y
    
  2. 编辑配置文件

    vim /etc/mail.rc
    
    
    set from=xxx@qq.com #发信人地址
    set smtp=smtps://smtp.qq.com:465 #qq邮箱服务器地址
    set smtp-auth-user=xxxx@qq.com #登录qq邮箱的账号
    set smtp-auth-password=xxx #授权码,需要从qq邮箱中配置
    set smtp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/root/.certs #证书地址
    
    
  3. qq邮箱授权码:登陆后->账号与安全->安全设置

  4. 证书配置

    mkdir -p /root/.certs
    cd /root/.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 -L -d /root/.certs
    certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
    
  5. 测试发邮件

     echo 'hello' |mail -v -s "test" xxx@qq.com
    
  6. mysql导出脚本

    mysqldump -u${用户名} -p${密码} ${库名} > /xxx/filename.sql
    
  7. 编写脚本

    vim /root/mysql_dump_script.sh
    #!/bin/bash
    filename=$(date "+%Y-%m-%d")
    mysqldump -u${用户名} -p${密码} ${库名} > /root/backsql/$filename.sql
    cd /root/backsql
    tar czvf $filename.tar.gz $filename.sql
    echo '备份数据库文件' |mail -v -s "$filename 数据库备份" -a  /root/backsql/$filename.tar.gz  xxxx@qq.com
    
  8. 增加权限

    chmod 777 /root/mysql_dump_script.sh
    
  9. 增加任务

    crontab -e
    0 2 * * * /root/mysql_dump_script.sh #每天2点执行
    
posted @ 2024-11-29 14:59  coderliu_cn  阅读(49)  评论(0)    收藏  举报