`
iaiai
  • 浏览: 2195097 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

centos7下每天自动备份mysql数据库

 
阅读更多
centos7下每天自动备份mysql数据库

1、新建备份脚本

vim /home/mysqlbak/mysql_bak.sh填入以下内容:
#!/bin/bash
mysql_user="USER" #MySQL备份用户
mysql_password="PASSWORD" #MySQL备份用户的密码
mysql_host="localhost"
mysql_port="3306"
mysql_charset="utf8" #MySQL编码
backup_db_arr=("db1" "db2") #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
backup_location=/home/mysqlbak  #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
expire_backup_delete="ON" #是否开启过期备份删除 ON为开启 OFF为关闭
expire_days=5 #过期时间天数 默认为五天,此项只有在expire_backup_delete开启时有效
backup_time=`date +%Y%m%d%H%M`  #定义备份详细时间
backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间
backup_3ago=`date -d '3 days ago' +%Y-%m-%d` #3天之前的日期
backup_dir=$backup_location/$backup_Ymd  #备份文件夹全路径
welcome_msg="Welcome to use MySQL backup tools!" #欢迎语
mysql_ps=`ps -ef |grep mysql |wc -l`
mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then
        echo "ERROR:MySQL is not running! backup stop!"
        exit
else
        echo $welcome_msg
fi
mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <<end
use mysql;
select host,user from user where user='root' and host='localhost';
exit
end
flag=`echo $?`
if [ $flag != "0" ]; then
        echo "ERROR:Can't connect mysql server! backup stop!"
        exit
else
        echo "MySQL connect ok! Please wait......"
        # 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份
        if [ "$backup_db_arr" != "" ];then
                #dbnames=$(cut -d ',' -f1-5 $backup_database)
                #echo "arr is (${backup_db_arr[@]})"
                for dbname in ${backup_db_arr[@]}
                do
                        echo "database $dbname backup start..."
                        `mkdir -p $backup_dir`
                        `mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`
                        flag=`echo $?`
                        if [ $flag == "0" ];then
                                echo "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"
                        else
                                echo "database $dbname backup fail!"
                        fi
                done
        else
                echo "ERROR:No database to backup! backup stop"
                exit
        fi
        # 如果开启了删除过期备份,则进行删除操作
        if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then
                 #`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;`
                 `find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`
                 echo "Expired backup data delete complete!"
        fi
        echo "All database backup success! Thank you!"
        exit
fi


2、修改mysql_bak.sh脚本属性,赋予执行权限
chmod 600 /home/mysqlbak/mysql_bak.sh
chmod +x /home/mysqlbak/mysql_bak.sh


3、定时执行备份脚本

输入如下命令:
crontab -e


在页面中编写如下内容:
00 3 * * * /home/mysqlbak/mysql_bak.sh

可实现每天凌晨三点自动执行第一步编写的脚本,备份mysql数据库到/home/mysqlbak,且只保留最近5天的数据库备份。

启动定时任务:
/bin/systemctl start crond.service

列出用户的定时任务列表:crontab -l

备份的文件怎么查看:
zcat +日志名.gz来查看,还可以用 | grep 来进行筛选自己想要的日志信息
分享到:
评论

相关推荐

    CentOs7下 mysql5.7自动备份数据库脚本

    CentOs7下 mysql5.7自动备份数据库脚本

    CentOS7下 MySQL定时自动备份的实现方法

    在CentOS7环境下,确保MySQL数据库的安全性和稳定性至关重要,其中之一的方法就是实现定时自动备份。这样,即使出现意外的数据丢失或损坏,也能迅速恢复到备份时的状态。本文将详细介绍如何在CentOS7上设置MySQL定时...

    centos7上mysql数据库全自动备份(不能用你抽我)

    本shell脚本是在centos7上测试的,只需要往脚本的变量区添加用户名、密码,备份路径、即可一键对linux上的mysql5.7数据库实现自动备份所有数据库,无论你的mysql有多少个数据库,都给你自动识别出来,并帮你备份掉。...

    Linux(Centos)全自动异地备份数据(WEB+Mysql).pdf

    备份MySQL数据涉及到使用mysqldump工具导出数据库内容到.sql文件中。 9. tar归档工具:tar是一个用于在Unix和类Unix系统上打包文件的工具。在备份过程中,可以使用tar来将文件和目录压缩成一个.tar.gz格式的归档...

    CentOS7环境mysql小版本升级步骤

    在CentOS7环境下,对MySQL的小版本升级是一个关键的维护任务,以确保数据库系统的稳定性和安全性。本文将详细阐述如何从MySQL 5.7.26升级到5.7.31,这是一个典型的二进制文件替换升级方法。以下是具体的步骤: 一、...

    mysql8备份-centos8.zip

    在CentOS 8操作系统上,备份MySQL数据库是非常关键的任务,以确保数据安全,防止意外丢失。这个名为"mysql8备份-centos8.zip"的压缩包文件很可能包含了用于备份MySQL 8.0数据库在CentOS 8系统上的相关脚本、配置或者...

    CentOS7下MySQL8的主主互备安装文档和my.cnf配置文件

    我们从【标题】入手,"CentOS7下MySQL8的主主互备安装文档"意味着我们将学习在CentOS7这个Linux发行版上安装MySQL 8.0数据库服务器,并设置主主复制(也称为主备同步),使得两个或多个MySQL实例可以相互备份,任何...

    centos数据库备份脚本

    可根据需求修改内部参数,参数都有说明,centos7 mysql数据库备份脚本,实测可用,先给文件授权,chmod +x mysqlBackup.sh,后只需在Linux系统中定时器cron中加入脚本存放路径即可. 输入如下命令: crontab -e 在页面中...

    CentOS7 安装 MySQL 数据库

    本教程将详述如何在CentOS7操作系统上安装MySQL5.7,这是一个非常实用的技能,因为CentOS是许多服务器的标准选择。在开始之前,确保你对Linux基础命令有一定的了解。 首先,由于CentOS7的默认YUM源中并未包含MySQL...

    linux centos 7 的mysql数据库 Mysql-5.5.58.zip

    在Linux CentOS 7环境下安装和配置MySQL数据库是一个重要的任务,特别是对于那些依赖于数据库存储和处理数据的应用程序。本文将详细讲解如何使用提供的Mysql-5.5.58.zip压缩包来安装和管理MySQL服务器和客户端。 ...

    centos7安装配置mysql5.7教程全

    在Linux系统中,CentOS 7是广泛使用的服务器操作系统,而MySQL 5.7则是一款高性能、开源的关系型数据库管理系统。本教程将详细介绍如何在CentOS 7上完整地安装和配置MySQL 5.7。 一、安装MySQL 5.7 1. 更新系统:...

    mysql 数据库在liunx 自动备份

    MySQL数据库在Linux环境下的自动备份是一项关键的系统维护任务,它确保了数据的安全性和可恢复性。自动备份能够定期创建数据库的副本,以防数据丢失或系统故障。下面将详细介绍如何在Linux系统上设置MySQL数据库的...

    CentOS7开启MySQL8主从备份、每日定时全量备份(推荐)

    备注1:解决连接MySQL数据库很慢的问题 vim /etc/my.cnf 添加内容:skip-name-resolve,重启数据库。  备注2:(密码带!或其他特殊符合,前面加\,例如123!321–&gt;123\!321) 1、主从备份 主数据库: vim /etc/my.cnf...

    ubuntu/centos自动备份mysql.txt

    服务器上没做数据库的自动备份,那你就等着删库跑路了,文章教你如何在ubuntu、centos服务器上自动备份mysql,按步骤复制粘贴即可!

    CentOS系统下如何设置mysql每天自动备份

    本文将详细介绍在CentOS系统中设置MySQL数据库每天自动备份的步骤,帮助你实现自动化数据保护。 首先,我们理解一下备份的重要性。备份是为了防止由于人为错误、系统故障、硬件损坏等原因导致的数据丢失。通过定期...

    centos7安装mysql5.6数据库简单教程-自己总结.DOCX

    这是一个基础教程,适用于那些需要在该操作系统上部署MySQL数据库的IT专业人员。首先,我们先了解下CentOS 7和MySQL 5.6的基本信息。 CentOS 7是一个基于Linux的开源操作系统,被广泛用于服务器环境,因为它提供了...

    centOS下安装配置mysql数据库

    在 CentOS 操作系统中安装和配置 MySQL 数据库是一项基础但至关重要的任务,因为 MySQL 是一个广泛应用的关系型数据库管理系统,广泛用于存储和管理各种类型的数据。本文将详细阐述如何在 CentOS 环境下进行 MySQL ...

    Linux系统下定时备份数据库

    这里我们将深入探讨如何在CentOS环境下,针对MySQL数据库进行定时备份,并且实现自动压缩以及旧备份的清理。 首先,我们需要创建一个备份脚本,这个脚本将包含备份、压缩以及清理旧备份的操作。以下是一个简单的...

Global site tag (gtag.js) - Google Analytics