热门标签 | 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 #查看状态



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 在加载一个第三方厂商的dll文件时,提示“找不到指定模块,加载失败”。由于缺乏必要的技术支持,百思不得期间。后来发现一个有用的工具 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
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社区 版权所有