热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux下mysql备份时间设置_Linux下如何定时备份mysql

安装所需工具yuminstallnet-tools#安装网络查看工具备份mysql创建存放备份数据的目录data目录存放数据,log存放备份时打印的日志mkdir-p

安装所需工具yum install net-tools #安装网络查看工具

备份mysql

创建存放备份数据的目录//data目录存放数据,log存放备份时打印的日志

mkdir -p /usr/local/mysql/backup/{data,log}

写一个shell脚本,放在/usr/local/mysql/backup取名为mysqlbak.sh注意,mysql版本 >=5.6 的,需要在my.cnf文件中指定 mysqldump 的用户和密码,则在mysqldump 中可以把-u${dbuser} 和-p${dbpasswd}去掉

mysql版本 >=5.6 的my.cnf文件中加入:[mysqldump]

#用户名

user=***

#密码

password=***

以下mysql版本为5.5,需要把dbuer和dbpasswd更改为你创建的mysql用户名和密码#!/bin/bash

#注意,以下 PATH 路径中需要把mysql的路径更改到你mysql安装的路径下

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/data/MySQL/mysql/bin

export PATH

#数据库用户名

dbuser='***'

#数据库密码

dbpasswd='***'

#数据库名

dbname='dbname'

#数据库端口

mysql_port='3306'

#备份时间

backtime=`date +%Y%m%d%H%M%S`

#日志备份路径

logpath='/usr/local/mysql/backup/log'

#数据备份路径

datapath='/usr/local/mysql/backup/data'

# 判断MYSQL是否启动,mysql没有启动则备份退出

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!" >> ${logpath}/mysqllog.log

exit

fi

#日志记录头部

echo "备份时间为${backtime},备份数据库表 ${dbname} 开始..." >> ${logpath}/mysqllog.log

#正式备份数据库

source=`mysqldump -u${dbuser} -p${dbpasswd} -h 127.0.0.1 ${dbname}> ${datapath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;

#备份成功以下操作

if [ "$?" == 0 ];then

cd $datapath

#为节约硬盘空间,将数据库压缩

tar zcf ${dbname}${backtime}.tar.gz ${backtime}.sql > /dev/null

#删除原始文件,只留压缩后文件

rm -f ${datapath}/${backtime}.sql

#删除七天前备份,也就是只保存7天内的备份

find $datapath -name "*.tar.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqllog.log

else

#备份失败则进行以下操作

echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqllog.log

fi

docker容器mysql备份

编写mysqlback.sh文件

和上面的基本相同,改变的只是mysqlback.sh文件内容

需更改的地方:dbname、mysql_user、mysql_password、docker_name#!/bin/bash

#数据库名

dbname='dbname'

#数据库用户

mysql_user='***'

#数据库密码

mysql_password='***'

#数据库端口

mysql_port='3306'

#备份时间

backtime=`date +%Y%m%d%H%M%S`

#日志备份路径

logpath='/usr/local/mysql/backup/log'

#数据备份路径

datapath='/usr/local/mysql/backup/data'

#需要备份的mysql容器名字

docker_name='mysql_container'

# 判断MYSQL是否启动,mysql没有启动则备份退出

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!" >> ${logpath}/mysqllog.log

exit

fi

#日志记录头部

echo "备份时间为${backtime},备份数据库表 ${dbname} 开始..." >> ${logpath}/mysqllog.log

#备份数据库

source=`docker exec ${docker_name} mysqldump -u${mysql_user} -p${mysql_password} ${dbname}> ${datapath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;

#备份成功以下操作

if [ "$?" == 0 ];then

cd $datapath

#为节约硬盘空间,将数据库压缩

tar zcf ${dbname}${backtime}.tar.gz ${backtime}.sql > /dev/null

#删除原始文件,只留压缩后文件

rm -f ${datapath}/${backtime}.sql

#删除七天前备份,也就是只保存7天内的备份

find $datapath -name "*.tar.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqllog.log

else

#备份失败则进行以下操作

echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqllog.log

fi配置定时任务vi /etc/crontab

配置每天凌晨3点自动备份,文件内容为:SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

#For details see man 4 crontabs

#Example of job definition:

#.---------------- minute (0 - 59)

#|  .------------- hour (0 - 23)

#|  |  .---------- day of month (1 - 31)

#|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

#|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

#|  |  |  |  |

#*  *  *  *  * user-name  command to be executed

0 3 * * * root /bin/sh /usr/local/mysql/backup/mysqlbak.shcrontab /etc/crontab #启动cron执行任务

f96ab365308a630ca1fce09044bbfc21.png↑每天凌晨3点定时备份效果图

89dae8d114a9ee0e26155e8e83858438.png↑crontab -l #查看执行的任务

crontab -r #删除任务

tail -f /var/log/cron #查看执行日志

systemctl enable crond #设为开机启动

systemctl start crond  #启动crond服务

systemctl status crond #查看状态



推荐阅读
  • 如何在MySQL中选择合适的表空间以优化性能和管理效率
    在MySQL中,合理选择表空间对于提升表的管理和访问性能至关重要。表空间作为MySQL中用于组织和管理数据的一种机制,能够显著影响数据库的运行效率和维护便利性。通过科学地配置和使用表空间,可以优化存储结构,提高查询速度,简化数据管理流程,从而全面提升系统的整体性能。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在2015年1月的MySQL内核报告中,我们详细探讨了性能优化和Group Commit机制的改进。尽管网上已有大量关于Group Commit的资料,本文将简要回顾其发展,并重点分析MySQL 5.6及之前版本中引入的二进制日志(Binlog)对性能的影响。此外,我们还将深入讨论最新的优化措施,如何通过改进Group Commit机制显著提升系统的整体性能和稳定性。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在CentOS系统中部署与配置ZooKeeper详解 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 为了评估精心优化的模型与策略在实际环境中的表现,Google对其实验框架进行了全面升级,旨在实现更高效、更精准和更快速的在线测试。新的框架支持更多的实验场景,提供更好的数据洞察,并显著缩短了实验周期,从而加速产品迭代和优化过程。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 【漫画解析】数据已删,存储空间为何未减?揭秘背后真相
    在数据迁移过程中,即使删除了原有数据,存储空间却未必会相应减少。本文通过漫画形式解析了这一现象背后的真相。具体来说,使用 `mysqldump` 命令进行数据导出时,该工具作为 MySQL 的逻辑备份工具,通过连接数据库并查询所需数据,将其转换为 SQL 语句。然而,这种操作并不会立即释放存储空间,因为数据库系统可能保留了已删除数据的碎片信息。文章进一步探讨了如何优化存储管理,以确保数据删除后能够有效回收存储空间。 ... [详细]
author-avatar
米饭2502912051
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有