使用crond定时跑脚本备份数据库

news2024/12/25 10:50:32

前言:

开发环境

服务器:centos 7(腾讯云轻量服务器)

数据库:mysql 5.7

一、crond是什么?

        crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

二、使用步骤

1.crond常用命令

  •  检测系统是否安装crond服务
  • crond服务命令说明
  • service crond start //启动服务
  • service crond stop //关闭服务
  • service crond restart //重启服务
  • service crond reload //重新载入配置
  • service crond status //查看crontab服务状态
  • crontab -e #编辑crontab定时任务
  • crontab -l #查询crontab任务
  • crontab -r #删除当前用户所有的crontab任务
  • systemctl status crond.service #查看crond系统服务的状态 

1.1启动服务

service crond start

1.2 添加任务

crontab -e

1.3 查看任务是否添加成功

crontab -l

2.crond定时任务格式

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

0002***/back.sh
minutehourdaymonthweekcommand
#定时脚本 下面的意思就是  每天的凌晨2点执行一次脚本 (根据自己的需求执行脚本)
00 02 * * * /usr/local/mysql/mysqlzip/back.sh

其中:

  • minute:表示分钟,可以是从0到59之间的任何整数。
  • hour:表示小时,可以是从0到23之间的任何整数。
  • day:表示日期,可以是从1到31之间的任何整数。
  • month:表示月份,可以是从1到12之间的任何整数。
  • week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
  • command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

注意:脚本的路径必须是脚本全路径(全路径:就是通过pwd命令获取的路径)

3.编写脚本

  1. 修改1:数据库用户名
  2. 修改2:数据库密码
  3. 修改3:数据库名
  4. 修改4:备份文件的存储位置
  5. 修改5:mysqldump 的文件地址(可以使用 whereis mysqldump 查询mysqldump 所在位置)
  6. 修改6:超过7个文件删除最早备份的文件 ,根据自己的实际需求更改;添加目的为了防止备份太多占用太多存储。
#!/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=修改1
# 密码
PASSWORD=修改2
# 要备份的数据库
DB=修改3


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

# ubuntu 系统非 root 用户,要将备份产生的文件放到 xxx 用户所在的目录下,否则必须使用 sudo 输入管理员密码执行此脚本。
# Linux服务器上备份文件目录  修改4
DIR=/usr/local/mysql/mysqlzip 
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 系统中的数据库 修改5
/usr/local/mysql/bin/mysqldump -u$USERNAME -p$PASSWORD $DB | gzip > $DIR/$DB_$DATE.sql.gz
# just backup the latest 7 days

#保留最近文件数7,删除其它多余的文件  修改6 (也可以去掉 主要为了防止备份太多占用太多存储)
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")

3.1 检测运行 刚刚编写好的 sh脚本

赋予权限,运行

chmod 777 back.sh

然后测试运行sh脚本

./back.sh


总结

 有了crontab在也不用担心忘记备份数据库了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

车载测试-can报文解析规则实例

报文解析 报文组成 一般报文主要有以下几个参数(比较全的情况下) 例 解析报文时主要用到的是帧ID和帧数据 帧ID 接收到的帧ID是十六进制的形式,由29位标识符转换的,目前大多数的通信协议中都直接给出了相应的帧ID&#xff0c…

一文读懂ChatGPT(全文由ChatGPT撰写)

最近ChatGPT爆火,相信大家或多或少都听说过ChatGPT。到底ChatGPT是什么?有什么优缺点呢? 今天就由ChatGPT自己来给大家答疑解惑~ 全文文案来自ChatGPT! 01 ChatGPT是什么 ChatGPT是一种基于人工智能技术的自然语言处理系统&…

光耦继电器和普通继电器的区别概述

光耦继电器和普通继电器都是电气传感器元件中的一种,其都能够将电能转化成机械能,并实现各种开关控制和保护控制。但光耦继电器与普通继电器最大的区别在于其输入电路与输出电路之间通过光电转换器件,而不是实现物理接触。本文将从结构、工作…

为什么越来越多的设计师开始用云渲染来渲图?

为什么越来越多的设计师开始使用 云渲染?小编认为可以从设计师以及云渲染平台自身这2个方向分析,下面一起阅读云渲染干货~ 一.针对于设计师 1.出图多,电脑供不应求 绘图员制作完后需要渲染给甲方确认,甲方要求多的又着急的话边改…

MySQL---基本查询DQL(下)(排序查询、聚合查询、分组查询、分页查询、正则表达式)

1. 排序查询 语法: select 字段名1,字段名2,…… from 表名 order by 字段名1 [asc|desc],字段名2[asc|desc]……注意:asc代表升序,desc代表降序,如果不写默认升序 order by用于子句中可以支持…

CM211-1-ZG_S905L 3-B_当贝纯净桌面-线刷固件包

CM211-1-ZG_S905L 3-B_当贝纯净桌面-线刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件&…

python中函数与类 类中的方法-静态方法/动态方法

class student():position即令def __init__(self,name,age):self.namenameself.ageagedef eat(self):passclassmethoddef cla(cls):passstaticmethoddef sta():passpassstustudent(name张三,age12) print(stu.position)stu.sta() stu.cla()# 直接使用静态和类方法 student.cla(…

第一章 程序设计基本方法

文章目录 第一章 程序设计基本方法1 程序设计语言1.1 程序设计语言1.2 编译和解释1.3 计算机编程1、为什么学习编程?2、编程 2 Python语言概述2.1 Python语言的发展2.2 Python最小程序 3 Python开发环境配置3.1 Python开发环境安装1、打开官网下载2、运行安装包 3.2…

CompletableFuture使用教学

CompletableFuture使用教学 一、开始一个线程异步执行不需要返回值 通过runAsync方式 //1.不加线程池方式 CompletableFuture<Void> completableFuture CompletableFuture.runAsync(() -> {System.out.println(Thread.currentThread().getName());//停顿几秒try {…

鸿蒙Hi3861学习七-Huawei LiteOS-M(信号量)

一、简介 信号量&#xff08;Semaphore&#xff09;是一种实现任务间通信的机制&#xff0c;实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。 在多任务系统中&#xff0c;各任务之间需要同步或互斥实现临界资源的保护&#xff0c;信号量功…

企业官方网站怎么申请?

在数字化时代&#xff0c;企业官方网站是展示企业形象、宣传产品和服务的重要窗口。那么&#xff0c;企业官方网站怎么申请呢&#xff1f;下面是一些简单的步骤。 1、选择合适的网站建设平台 目前市面上有许多网站建设平台&#xff0c;企业需要根据自己的需求和预算选择适合自…

Vue3学习笔记(尚硅谷)

文章目录 一、创建vue3工程1-1、使用vite创建vue3项目1-1、安装开发者工具 二、常用Composition API2-1、setup2-2、ref函数2-3、reactive函数2-4、Vue3的响应式原理2-4-1.Vue2的响应式原理2-4-3.Vue3的响应式原理 2-5、reactive对比ref2-6、setup的两个注意点2-7、计算属性与监…

Excel中创建图表的快捷方式哪些

如果你在Excel中创建了很多图表&#xff0c;你可能正在寻找加快创建和格式化速度的快捷方式。以下是一些可以用于Excel图表的有用快捷方式。 一、在新工作表上创建新图表 要在新工作表上创建新图表&#xff0c;请执行以下操作&#xff1a; ​选择要用于创建图表的数据。按F1…

域适应 Domain adaption(1)

一、定义 1、无监督域自适应 经典机器学习假设训练集和测试集来自相同的分布。 然而&#xff0c;这个假设在现实世界的应用程序中可能并不总是成立&#xff0c;例如&#xff0c;数据来源不同。 这种情况下&#xff0c;域分布之间会存在差异&#xff0c;直接将训练好的模型应…

实时数仓项目开发过程中发现的几个问题和优化点(数据接入)

1、属性值被截断的问题 在数据实时接入阶段&#xff0c;使用NIFI ExecuteScript组件生成增、改、删SQL语句&#xff0c;将SQL语句放到了attribute中(详见视频教程http://mp.weixin.qq.com/s?__bizMzIyNzkwNDE4Nw&mid2247486672&idx1&sn41793a61dc5f7ca6b6f9a34b4…

供应链管理系统软件有哪些?这几款软件很不错

一、供应链管理系统解决什么问题 企业不断引进各类管理理念&#xff0c;落地运用各种信息化系统&#xff0c;然而依旧问题频出&#xff1a; 为什么交付还是常常延期&#xff1f;为什么成本依旧居高不下&#xff1f;为什么质量问题频频发生&#xff1f;为什么库存长期积压&…

SpringBoot启动原理

背景 1> 大家都知道SpringBoot是通过main函数启动的&#xff0c;这里面跟踪代码到处都没有找到while(true)&#xff0c;为什么启动后可以一直跑&#xff1f; 2> SpringBoot默认使用tomcat作为web容器。大家也可以通过在pom文件中exclusion掉tomcat&#xff0c;denpendenc…

113.【Vue-细刷-04】

Vue-03 (二十四)、浏览器存储(WebStorage)1.本地缓存(LocalStorage)(1). 模仿本地缓存-未用JSON转字符串(2).模拟本地缓存-使用JSON转字符串 2.会话缓存(Session Storage)(1).模拟会话缓存(2).会话缓存和本地缓存的区别(3).JSON转换与JSON解析 3.todos案列_本地缓存版(1).mount…

NVIDIA CUDA驱动安装

1 引言 因为笔记本电脑上运行Milvus图像检索代码&#xff0c;需要安装CUDA驱动。电脑显卡型号是NVIDIA GeForce GTX 1050 Ti Mobile, 操作系统是Ubuntu 20.04&#xff0c;内核版本为Linux 5.15.0-72-generic。 2 CUDA驱动测试 参考网上的资料&#xff1a;https://blog.csdn.…

车载测试ADAS-常用场景仿真软件

ADAS&#xff08;Advanced Driber Assistant System&#xff09;&#xff0c;高级驾驶辅助系统&#xff0c;先进驾驶辅 助系统&#xff0c;作用于辅助汽车驾驶&#xff0c;通过感知、决策和执行&#xff0c;帮助驾驶员察觉可能发生的危险&#xff0c;是提高安全性的主动安全技术…