美文网首页
Linux下mysql定时备份压缩

Linux下mysql定时备份压缩

作者: 邱蔚帆 | 来源:发表于2020-04-05 21:21 被阅读0次

    转自https://blog.csdn.net/massivestars/article/details/52445228

    本文要实现的内容

    自动备份mysql指定的数据库

    压缩备份的数据库

    删除旧有的备份(7天前)

    实现是方法编写一个备份脚本,然后使用crontab定时执行脚本达到自动备份的目的。

    本次配置的环境目录如下:

    mysql安装目录:  /usr/local/mysqlmysql

    备份目录:  /app/deploy/backup/mysqlmysql

    配置文件:  /etc/my.cnf

    备份shell文件:  /usr/local/bin/mysql-data-backup.sh

    环境介绍完毕,下面正式开始

    1、新建备份脚本

    mkdir -p /app/deploy/backup/mysql

    #新建数据备份所在目录

    ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin

    #创建备份执行程序的软链接

    touch /usr/local/bin/mysql-data-backup.shchmod +x /usr/local/bin/mysql-data-backup.sh 

    #增加脚本的执行权限

    2、配置mysql的[client]选项

    使用mysqldump -u root -proot test_db > /app/deploy/backup/mysql/backup.sql 会报以下错误:

    Warning: Using a password onthecommandlineinterfacecanbeinsecure.

    1

    直接在命令行填写明文密码是不安全的,容易被系统其它用户窃取。这是mysql为了安全性作出的一种专制,官方也对这种情况作出了说明:

    http://dev.mysql.com/doc/refman/5.7/en/password-security-user.html

    这个种情况下,官方也给出了解决方法,那就是增加配置文件里的[client]中的内容。

    vi /etc/my.cnf

    加入以下内容

    [client]

    host=localhost

    user=root

    password=root

    这时候可用以下命令进行备份

    mysqldump --defaults-extra-file=/etc/my.cnf test_db > /app/deploy/backup/mysql/backup.sql

    3、编写备份脚本

    vi /usr/local/bin/mysql-data-backup.sh

    脚本内容如下:

    #!/bin/bash

    #description: mysql-data automatically backup script# 文件名为test_db+日期

    backupDatabase=test_db

    fileName=${backupDatabase}`date +%Y%m%d`

    # 定义baseDir变量

    baseDir=/app/deploy/backup/mysql/

    # 备份数据库

    mysqldump --defaults-extra-file=/etc/my.cnf ${backupDatabase} > ${baseDir}${fileName}.sql 

    # 压缩 tar -zcPvf ${baseDir}${fileName}.sql.tar.gz ${baseDir}${fileName}.sql

    # 删除刚刚备份的sql文件,留下压缩的  rm -f${baseDir}${fileName}.sql; 

    # 删除7天前备份的数据,只保留一星期内的数据                                 

    find ${baseDir} -mtime +7 -name "${backupDatabase}*.tar.gz" -exec rm -rf {} \;   

    4、编写定时任务

    vi /var/spool/cron/crontabs/root

    加入以下内容

    # 每天的23时59分进行备份(使用/bin/bash解析器运行脚本)

    59 23 * * * /bin/bash /usr/local/bin/mysql-data-backup.sh

    相关文章

      网友评论

          本文标题:Linux下mysql定时备份压缩

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