使用crontab定时脚本备份Mysql数据

MySQL 定时备份数据库(非常全) 互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。下面有部分截图希望能对大家有所帮助。” /> 阅读详情

使用crontab定时脚本备份Mysql数据

需求:

希望在定时备份Linux中的数据库文件【以压缩包的形式】到我们的Linux本地文件夹中,当数据库发生问题,可以及时备份修复。
我们可以使用Linux的定时任务进行处理

首先我们需要在指定文件夹下建立一个脚本文件(xxx.sh)以及需要备份的目标文件夹

这里假设在**/usr/lib/mysql目录下新建back.sh和back文件夹**

这里分为两种不同的备份方式:

方式1:直接在Linux宿主下安装Mysql,则back.sh为:

#!/bin/bash
echo '##########################################'
echo '###### The database is automatically backed up at 01:00 am every day ######'
echo '##########################################'
# Setting environment variables
DATE=$(date +%Y_%m_%d_%H_%M_%S)
# $(date +%Y%m%d)
# 数据库用户名
USERNAME=root
# 密码
PASSWORD=123456
# 要备份的数据库
DB=database_name

# Docker容器ID
#DOCKERID=********

# ubuntu 系统非 root 用户,要将备份产生的文件放到 xxx 用户所在的目录下,否则必须使用 sudo 输入管理员密码执行此脚本。
# Linux服务器上备份文件目录
DIR=/usr/backMysql/mysql  
echo 'Get system date: ' $DATE

if [ ! -d "$DIR" ]; then
mkdir $DIR
fi
cd $DIR

echo 'backup started...' $(date "+%Y-%m-%d %H:%M:%S")

# 使用docker进入mysql容器,执行mysqldump备份数据库文件
# docker exec -it 容器名称 mysqldump -u用户名 -p密码 要备份的数据库名称 | gzip > 要打包到的文件名称
#docker exec $DOCKERID /usr/bin/mysqldump -u $USERNAME --password=$PASSWORD  $DB | gzip > $DIR/$DB_$DATE.sql.gz

# 备份 直接安装在 linux 系统中的数据库
/usr/bin/mysqldump -u$USERNAME -p$PASSWORD $DB | gzip > $DIR/$DB_$DATE.sql.gz
# just backup the latest 7 days


#保留最近文件数7,删除其它多余的文件
ReservedNum=7
date=$(date "+%Y%m%d-%H%M%S")

FileNum=$(ls -l $DIR|grep ^- |wc -l)

while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt $DIR| head -1)
    echo  $date "Delete File:"$OldFile
    rm -rf $DIR/$OldFile
    let "FileNum--"
done 

echo 'backup completed!' $(date "+%Y-%m-%d %H:%M:%S")

方式2:数据库安装在Docker容器中,需要配置Mysql在Docker容器中的id,通过Docker进入Mysql,然后执行对应的备份命令

#!/bin/bash
echo '##########################################'
echo '###### The database is automatically backed up at 01:00 am every day ######'
echo '##########################################'
# Setting environment variables
DATE=$(date +%Y_%m_%d_%H_%M_%S)
# $(date +%Y%m%d)
# 数据库用户名
USERNAME=root
# 密码
PASSWORD=123456
# 要备份的数据库
DB=database_name

# Docker容器ID
DOCKERID=********

# ubuntu 系统非 root 用户,要将备份产生的文件放到 xxx 用户所在的目录下,否则必须使用 sudo 输入管理员密码执行此脚本。
# Linux服务器上备份文件目录
DIR=/usr/backMysql/mysql  
echo 'Get system date: ' $DATE

if [ ! -d "$DIR" ]; then
mkdir $DIR
fi
cd $DIR

echo 'backup started...' $(date "+%Y-%m-%d %H:%M:%S")

# 使用docker进入mysql容器,执行mysqldump备份数据库文件
# docker exec -it 容器名称 mysqldump -u用户名 -p密码 要备份的数据库名称 | gzip > 要打包到的文件名称
docker exec $DOCKERID /usr/bin/mysqldump -u $USERNAME --password=$PASSWORD  $DB | gzip > $DIR/$DB_$DATE.sql.gz

# 备份 直接安装在 linux 系统中的数据库
#/usr/bin/mysqldump -u$USERNAME -p$PASSWORD $DB | gzip > $DIR/$DB_$DATE.sql.gz
# just backup the latest 7 days


#保留最近文件数7,删除其它多余的文件
ReservedNum=7
date=$(date "+%Y%m%d-%H%M%S")

FileNum=$(ls -l $DIR|grep ^- |wc -l)

while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt $DIR| head -1)
    echo  $date "Delete File:"$OldFile
    rm -rf $DIR/$OldFile
    let "FileNum--"
done 

echo 'backup completed!' $(date "+%Y-%m-%d %H:%M:%S")

使用crontab进行定时任务的执行:

sudo crontab -e
# 添加执行命令每日凌晨2点备份一次
00 02 * * /usr/backMysql/back.sh

编写保存退出提示信息表示配置成功:

crontab: installing new crontab

此时可以通过crontab -l查看保存的定时任务,常用的crontab命令如下所示:

# 查看crontab执行记录
tail -f /var/log/cron
# 用于编辑定时任务; 定时任务编辑后,不用重启定时任务,定时任务会自动重新加载。
crontab -e 
# 用来查看当前有什么定时任务
crontab -l 
# 查看crontab日志
cat /var/log/cron.log


当定时任务执行后,会给我们发送一封邮件,成功或者失败皆有信息展示,查看邮件信息命令:

sudo cat /var/spool/mail/root

一般如果我们是普通用户,使用上面的00 02 * * /usr/backMysql/back.sh会提示定时任务执行失败邮件信息:

Permission denied

即说明我们的普通用户权限不足,此时我们需要修改我们的定时任务执行文件为:

00 02 * * /bin/sh /usr/backMysql/back.sh

此时再进行定时任务的执行,将会成功执行!!!!

深入解析数据通信中的码元速率与比特率:从基础到实战应用 本文深入解析了数据通信中的核心概念码元速率与比特率,通过生动的比喻和公式(比特率=波特率×log₂(M))揭示其本质关系。文章结合BPSK、QPSK、16QAM等调制技术,剖析了从4G/5G到LoRa等实战场景中如何权衡速率、距离与可靠性,并提供了软考真题解析与系统设计建议,帮助读者从理论到应用全面掌握数据速率优化。 阅读详情

相关推荐

车道线检测(传统基于Opencv的方法)

传统车道线检测方法主要是使用颜色选择、高斯平滑、边缘检测、ROI区域选择、霍夫变换、标定车道边界等Opnecv图像处理操作去检测道路上的车道线,我自己对很多用这类处理对很多道路场景车道线进行过实验,这类算法往往需要人工根据不同街道场景手动去反复调整各算法参数,从而才能使检测效果最佳。

Yangxiaoaijiejie的博客 2073

crontab 每天凌晨12点定时器_Linux下使用crontab实现mysql数据库自动备份

大家在做开发的时候,数据是很重要的,本文将介绍MySQL数据库如何在Linux系统上面进行自动备份创建备份目录选择/home目录,在该目录下创建backup文件夹来存放数据库备份文件;#cd /home#mkdir backup#cd backup创建备份Shell脚本创建shell脚本:#vi bkDatabaseName.sh输入以下内容:#!/bin/bashmysqldump -uuser...

weixin_40006965的博客 1584

山东大学FPGA课程实验一 加法器设计

电子设计自动化与FPGA设计,实验一 加法器设计

2503_91283667的博客 869

常见Cron表达式示例及其应用

通过合理地使用Cron表达式,我们可以满足各种不同的定时任务需求,从每天固定时间执行任务到每隔一段时间执行任务,都可以通过Cron表达式来实现。掌握Cron表达式的使用方法,可以帮助我们更好地管理和调度定时任务,提高系统的稳定性和可靠性。

果酱 の 博客 1万+

高速设计注意事项总结——MDI篇

在以太网高速通信系统中,MDI(Medium Dependent Interface,介质相关接口)是连接物理层芯片(PHY)与传输介质(如网线)的关键接口,其设计直接影响信号完整性、传输速率和抗干扰能力。本文围绕 MDI 及 RJ45 接口电路、关键参数、设计与布线要点展开,为高速以太网设计提供参考。本文包含MDI 及 RJ45 接口电路组成、电路设计注意事项、布局布线要求等内容

qq_16237389的博客 1446

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4499

cron表达式

cron表达式

weixin_69323488的博客 5425

Win10插网线显示未识别网络的三种解决方法

本文介绍了三种解决Win10插网线显示未识别网络问题的方法:更新或重启网络设备驱动程序、重置Winsock目录、启用Network Setup Service服务。这些方法都是基于常见的网络问题和解决方案而设计的,适用于大多数Win10用户。如果你遇到了这一问题,可以按照上述步骤进行操作,相信一定能够找到解决问题的方法。需要注意的是,在进行任何操作之前,请务必备份重要数据以防万一。此外,如果你对计算机硬件或软件不熟悉,建议寻求专业人士的帮助以避免造成不必要的损失。

nntxthml的博客 6773

cron表达式常用例子

cron表达式常用例子 cron 表达式的写法老是记不住,当然也是我根本不想记得原因所致。 这里记录一下,有用到就来看一下 规则 cron(秒 分钟 小时 日 月 星期 年) cron 的表达式的例子 (1)0/2 * * * * ? 表示每2秒 执行任务 (2)0 0/2 * * * ? 表示每2分钟 执行任务 (3)0 0 2 1 * ? 表示在每月的1日的凌晨2点调整任务 (4...

Little_fxc的博客 4722

告别臃肿!保姆级教程:用NTLite深度精简Win10,打造你的专属纯净系统(附完整组件移除清单)

本文提供了一份详细的NTLite教程,帮助用户深度精简Windows10系统,移除冗余组件并优化性能。从准备工作到组件移除清单,再到系统配置优化和无人值守安装,逐步指导用户打造专属纯净系统。附完整组件移除清单和实战经验,确保系统稳定高效运行。

weixin_30945039的博客 858

Linux内存从0到1学习笔记(10.1 BugsShooter之cma配置过小导致页迁移繁忙而内存申请失败)

通过向武神讨教,顺便记录cma内存有空间但页繁忙(页正被访问,无法迁移)迁移不了导致cma内存分配失败的排查过程。

从0到1,突破自己 1万+

Linux 定时任务调度(crontab)整理,太实用了!

crontab 定时任务整理

zhizhuo0915的博客 3569

SAP 固定资产采购简介

SAP 固定资产采购是指企业通过采购流程获取长期使用并记录为固定资产的物品。固定资产是企业为长期使用而购置的资产,如机器设备、办公设备、建筑物、车辆等,通常这些资产的使用期限较长,并且在资产负债表上记录。在SAP系统中,固定资产采购流程通常与物料管理(MM)模块和固定资产管理(FI-AA)模块相结合。这个过程涉及从需求的提出、采购订单的创建,到货物接收、发票校验和资产激活的多个步骤。

我小时候很黑的博客 1731

Linux shell脚本实现使用crontab定时备份mysql数据库实例

MySQL定时备份之使用Linux下的crontab定时备份实例1、查看磁盘空间情况2、创建备份目录3、创建备份Shell脚本4、添加可执行权限5、添加计划任务6、测试任务是否执行 1、查看磁盘空间情况 既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果! 存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件...

徊忆羽菲 412

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL使用mysqldump备份数据库脚本手工执行成功 crontab定时却失败的解决方法

用crontab自动备份MySQL的时候导出总是为空,原因是corn的环境变量中没有mysqldump,所以用crontab执行mysqldump的时候要加上绝对路径,如:/yourMySQLPath/bin/mysqldump xxxxxxx这样就可以了! 如果不知道绝对路径可以用ps -ef|grep mysql或者whereis mysqldump查询 例如我本地的就是 #!/bin/

qq_36663951的博客 3851

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

docker容器mysql服务 数据库定时备份sh脚本及执行步骤

使用crontabs做定时 一、安装vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。 yum install vixie-cron yum install crontabs 二、crontabs操作命令 service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service cr...

QQ1752506968的博客 648

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

linux mysql定时自动备份实现

linux mysql定时自动备份实现开始使用一、数据备份二、数据恢复三、创建计划任务添加计划任务 开始使用 基本上不管是对于我们自己使用,还是给客户部署服务器,mysql备份是不可或缺的一部分,这里就教大家怎么去实现mysql的定时自动备份功能,为了实现这个功能,也是踩了各种坑,最后整理出来的,在这里我们实现了下面这两个功能 mysql_backup.sh 用于备份数据 mysql_resto...

醉春风的博客 1万+

MySQL 定时备份的几种方式(非常全面)

在操作数据过程中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行 MySQL 定时备份数据库。

qq_36264795的博客 7054

crontab mysql备份_MySQL定时备份之使用Linux下的crontab定时备份实例

复制代码代码如下:################################################################### 备份某个数据库################################################################### root 用户,创建备份目录mkdir -p /usr/local/cncounter/mysq...

weixin_42186728的博客 159

工具使用篇——crontab实现linux服务器上mysql数据库的备份工作

备份原理 通过mysqldump命令保留数据库的结构和数据sql语句。 通过crontab的创建定时任务,定期的循环备份。 操作过程 1、创建A.sh文件文件的内容如下: #将数据库备份并压缩的命令 mysqldump -u你的数据库用户名 -p数据库密码 数据库名称 | gzip > 备份保存的路径/文件名字_$(date +%Y%m%d_%H%M%S).sql.gz #循环删除离现在比较...

铁血军的小博客 4424

通过简单的脚本在Linux环境实现Mysql数据库的定时备份(Mysqldump命令备份)

1、mysqldump命令   mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。 命令:mysqldump -h主机地址 -u用户名 -p数据库密码 数据库名 表1 表2 > 文件名   如果用户名需要密码,则需要在此命令执行后输入一次密码核对;如果数据库用户名不需要密码,则不要加“-p”参数,导入的时候相同。注意输入的用户名需要拥有对应数据库的操作权限,否则无法导出数据

向心行者 5109

crontab mysql备份_crontab + mysqldump 解决每天定时自动备份MySQL数据库

这是一个基于 crontab + mysqldump 解决每天定时自动备份MySQL数据库问题的方法。由于 mysqlhotcopy 产生的文件大;加上备份时还要锁定表,花费时间长,所以就采用 mysqldump 了。 mysqldump 工具相对灵活,可锁表,也可以不锁;可用它产生没有索引等其它数据的备份,因此,生成的备份文件小,备份时间也较短。我们可以编写一个脚本,定制 mysqldump 的...

weixin_42400383的博客 292

MySQL 定时备份的几种方式,这下稳了!

一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!扫码获取!!(备注Java获取)**[外链图片转存中…(img-u9sYi1HW-1711796785743)][外链图片转存中…(img-8mQc58TX-1711796785743)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

2401_83329402的博客 1022
上一篇: Java注解+AOP在项目中的使用
下一篇: flyway简单入门【SpringBoo整合flyway】
爱上布洛格的鸭鸭
博客等级 码龄6年 9039粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值