美文网首页Mysql&Mariadb
Centos Mysql 实现自动备份发送到指定邮箱

Centos Mysql 实现自动备份发送到指定邮箱

作者: Miuson | 来源:发表于2019-12-11 15:30 被阅读0次

    Linux Mysql 实现自动备份

    邮箱选择:mail 方式发送邮箱

    邮箱应用场景

    很多时候我们在使用shell监控脚本的时候(例如:Mysql,nginx,等等),当监控的服务出现问题的需要通过邮箱(当然也可以使用微信、短信或者钉钉)通知给管理员。

    1.先判断本身系统是否有mail

    which mail 

    这种是有的

    1.1 系统没有mail 安装命令 (需要连接外网)

    yum install mailx -y

    1.2 修改配置文件

    vim  /etc/mail.rc

    set smtp=smtps://smtp.163.com:465

    set from=remake@163.com  换成你自己的邮箱地址

    set smtp-auth=login

    set smtp-auth-user= remake@163.com  换成你自己的邮箱地址 

    set smtp-auth-password=yournumber   注意:你的授权码,使用smtp需要打开授权

    set ssl-verify=ignore

    set nss-config-dir=/etc/pki/nssdb/ 

    1.3 打开授权(163邮箱)

    点击红框 确保服务已经开启 按照步骤新增授权码

    注意:别忘记你的授权码,只能看一次(记得保存)

    授权码

    把授权码复制到 配置文件 set smtp-auth-password=yournumber   

    1.4测试发送

    echo "测试邮件" | mail -s "测试"  remake@163.com

    假如没有收到可以看看垃圾箱,有没有收到,有些会默认走到垃圾箱

    1.5 mail常用命令

    echo "测试邮件" | mail -s "测试"  remake@163.com

    -s表示主题,"< mail.txt"表示把mail.txt里的内容作为邮件正文

    也可以用cat mail.txt的输出作为mail命令的标准输入,作为邮件正文

    -c表示抄送的地址 remake@126.com是直接发送的地址 


    2.1.创建需要备份的文件夹

               名字可以随便创建

           mkdir /home/dbback   

          cd /home/dbback  

        2.2.创建 shell 脚本

            名字随便起

            vim bkDatabaseName.sh 

        2.2 .1   复制粘粘 内容 (这是备份为 sql 文件)!根据需要来选取

                    注意: 

                    把 username 替换为实际的用户名; 

                    把 password 替换为实际的密码; 

                    把DatabaseName 替换为实际的数据库名;

     #!/bin/bash

    mysqldump -uusername -ppassword DatabaseName >/home/dbback/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

         2.2.2  对备份进行压缩:(这是备份为 sql 压缩 文件)!根据需要来选取

                        注意 :mysql备份只能识别后缀sql.gz  文件,不能识别 sql.tar.gz     

    #!/bin/bash

    mysqldump -uusername -ppassword DatabaseName | gzip >/home/dbback/DatabaseName_$(date+%Y%m%d_%H%M%S).sql.gz

        2.3.添加可执行权限

                  注意:名字对应脚本名字

                chmod u+x bkDatabaseName.sh  

                添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

    ./bkDatabaseName.sh

    sh bkDatabaseName.sh

    注意可能这里会报错:(可以忽略,因为邮件已经发送)

    Warning: Using a password on the command lineinterface can be insecure.

       这是因为: 导出MySQL数据库的时候采用mysqldump命令,出现"Warning: Using a password on the command line interface can beinsecure."的错误提示,当然数据库肯定也没有能备份下来。这个问题应该是在MySQL5.6+版本的时候就有出现,可能是为了确保数据库的安全性采用的保护机制。

    解决方法、修改数据库配置文件

    我们需要修改数据库配置文件,这个要看我们数据库的配置的,有些是在/etc/my.cnf,有些是/etc/my.conf 

    截图

               我们需要在[client]部分添加脚本:

    host=localhost

    user=数据库用户

    password='数据库密码'


    3. 加上邮件发送 完整脚本

    我创建脚本  /home/dbback/ 

    注意:里面根据自己的要求修改名字路径!

    #!/bin/bash 

    mysqldump -u'账号' -p'密码' '备份的数据库' | gzip >/home/dbback/test_$(date -d today +%Y%m%d).sql.gz

    echo 'email 测试' | mail -a /home/dbback/test_$(date -d today +%Y%m%d).sql.gz -s 'mail sql' remake@163.com

    rm -rf /home/dbback/test_$(date -d today +%Y%m%d).sql.gz 

    3.1加上脚本权限

     chmod u+x bkDatabaseName.sh  

            4.添加计划任务

                    也可以   查看这个: https://www.jianshu.com/p/847ec50a65c3     

                  首先  输入代码检测是否安装 crontab

                rpm -qa | grep crontab

    已经安装crontab截图

             如果没安装会显示:   -bash: crontab: commandnotfound  

            分别执行这两个命令。

            yum -y install vixie-cron

            yum -y install crontabs

    简单说明:(偏一下题)

    vixie-cron 是 cron 的主程序;

    crontabs 是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

    service crond start //启动服务

    service crond stop      //关闭服务

    service crond restart  //重启服务

    service crond reload    //重新载入配置

    service crond status    //查看crontab服务状态

    同样可以设置开机自启动:

    chkconfig --level 345 crond on

    正题

     输入命令:(这时候会打开类似 vim 的编辑器)

      crontab -e

                输入内容:(这个是一分钟执行一次备份)

    */1 * * * * /home/backup/bkDatabaseName.sh

      

      4.1测试任务是否执行

        很简单,我们就执行几次“ls”命令,看看一分钟过后文件有没有被创建就可以了!

         如果任务执行失败了,可以通过以下命令查看任务日志

        # tail -f /var/log/cron

        类似会出现这种:

    测试结果

    相关文章

      网友评论

        本文标题:Centos Mysql 实现自动备份发送到指定邮箱

        本文链接:https://www.haomeiwen.com/subject/vydogctx.html