用bat写一个定时备份数据库某几个表的脚本

1.首先是bat脚本的固定框架

@echo off
setlocalendlocal
  • @echo off 其中@抑制当前命令的回显,echo off关闭命令回显
  • setlocal 和 endlocal 是 Windows 命令行脚本中用于限定本地环境变量作用范围的命令

2.然后设置下要备份的数据库的信息

rem 目标MySQL数据库信息
set DB_HOST=数据库ip
set DB_PORT=端口
set DB_USER=用户名
set DB_PASSWORD=密码
set DB_NAME=数据库名
set DB_LIST_FRONT_NAME=数据表名
  • 由于bat的for循环中的变量调用搞得头痛我就没搞遍历数据表名列表

3.设置日志以及sql文件的保存位置

rem 设置日志文件路径
set LOG_FILE=Z:\demo\DataBaseBackup\execution_log.txt
rem 备份文件保存路径
set BACKUP_DIR=Z:\demo\DataBaseBackup\sql

4.定义动态的完整数据sql文件路径

rem 获取当前日期作为备份文件名的一部分
set CURRENT_YEAR=%DATE:~0,4%
set CURRENT_MONTH=%DATE:~5,2%rem 减去 1,使用 ! 扩展变量,并加上括号
set /a PREVIOUS_MONTH=!CURRENT_MONTH! - 1rem 处理跨年的情况
if !PREVIOUS_MONTH! lss 1 (set PREVIOUS_MONTH=12
)
set CURRENT_DATE=%DATE:~8,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%rem 格式化年份和月份(月份不足两位前面补零)
set FORMATTED_YEAR=%CURRENT_YEAR%
if !PREVIOUS_MONTH! lss 10 set PREVIOUS_MONTH=0!PREVIOUS_MONTH! else set PREVIOUS_MONTH=!PREVIOUS_MONTH!set DB_LIST_NAME=%DB_LIST_FRONT_NAME%_%FORMATTED_YEAR%_%PREVIOUS_MONTH%rem 完整的备份文件路径
set BACKUP_FILE=%BACKUP_DIR%\%DB_LIST_NAME%.sql
  • 当要用到 ! 的时候就需要在前面启用延迟扩展了,bat获取实时更新的变量就要用!
rem 启用延迟扩展
setlocal enabledelayedexpansion

5.使用mysqldump开始备份

rem 使用 mysqldump 命令进行备份
mysqldump -h %DB_HOST% -P %DB_PORT% -u %DB_USER% -p%DB_PASSWORD% %DB_NAME% --tables %DB_LIST_NAME% > %BACKUP_FILE% 2> %LOG_FILE%
  • 我这还将数据库出错的内容重映射到了日志文件中

6.打印日志

rem 设置执行语句对象
set RUNNER=mysqldump -h %DB_HOST% -P %DB_PORT% -u %DB_USER% -p%DB_PASSWORD% %DB_NAME% --tables %DB_LIST_NAME% ^> %BACKUP_FILE%rem 检查备份是否成功
if !ERRORLEVEL! equ 0 (echo %DATE:~0,10% %TIME%:MySQL备份成功,备份文件保存在: %BACKUP_FILE%,执行语句为: !RUNNER! >> %LOG_FILE%
) else (echo %DATE:~0,10% %TIME%:MySQL备份失败,执行语句为: !RUNNER! >> %LOG_FILE%echo 错误级别: !ERRORLEVEL! >> %LOG_FILE%
)

7.写一个脚本启动多个脚本

@echo off
setlocalrem 设置日志文件路径
set LOG_FILE=Z:\demo\DataBaseBackup\execution_log.txtset DB_NAME=demo1
call Z:\demo\DataBaseBackup\%DB_NAME%.bat
echo %DB_NAME%备份已完成 >> %LOG_FILE%set DB_NAME=demo2
call Z:\demo\DataBaseBackup\%DB_NAME%.bat
echo %DB_NAME%备份已完成 >> %LOG_FILE%set DB_NAME=demo3
call Z:\demo\DataBaseBackup\%DB_NAME%.bat
echo %DB_NAME%备份已完成 >> %LOG_FILE%set DB_NAME=demo4
call Z:\demo\DataBaseBackup\%DB_NAME%.bat
echo %DB_NAME%备份已完成 >> %LOG_FILE%endlocal
  •  这里注意其他bat脚本的路径要写全,因为用windows的schtasks命令定时启动bat的时候需要

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

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

相关文章

08 C++中的运算符

系列文章目录 08 C中常见的运算符 目录 系列文章目录 文章目录 前言 一、 C中常见的运算符有哪些? 二、各个运算符的具体介绍 1.算术运算符 2.关系运算符 3.逻辑运算符 4.位运算符 5.赋值运算符 6. 其他运算符 三、C 中的运算符优先级 总结 前言 运算…

深度学习毕设项目 医学大数据分析 - 心血管疾病分析

# 1 前言 🚩 基于大数据的心血管疾病分析 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 1 课题背景 本项目的任务是利用患者的检查结果预测心血管疾病(CVD)的存在与否。 2 数据…

新型Python环境与依赖管理工具——pipenv

文章目录 pipenv介绍pipenv安装pipenv使用创建虚拟环境删除虚拟环境安装依赖查看包之间的依赖图卸载依赖在虚拟环境中执行命令shell环境下通过requirements.txt安装依赖导出requirements.txt文件查看虚拟环境的路径 pipenv介绍 pipenv可以看做是pip和virtualenv的组合体&#…

【开源视频联动物联网平台】流媒体传输协议HLS,FLV的功能和特点

HLS(HTTP Live Streaming)和FLV(Flash Video)都是用于视频流传输的协议或容器格式,但它们在某些方面有着显著的区别和特点。 HLS是一种由苹果公司开发的用于流媒体传输的协议,而FLV则是Adobe公司开发的用于…

【ArcGIS Pro二次开发】:CC工具箱1.1.4更新_免费_50+工具

CC工具箱1.1.4更新【2023.11.30】 使用环境要求:ArcGIS Pro 3.0 一、下载链接 工具安装文件及使用文档: https://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5rhttps://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5r 二、使用方法 1、在下…

从物理机到K8S:应用系统部署方式的演进及其影响

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 随着科技的进步,软件系统的部署架构也在不断演进,从以前传统的物理机到虚拟机、Docker和Kubernetes,我们经历了一系列变化。 这些技术的引入…

代码随想录图论|463. 岛屿的周长

题目: 给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] 1 表示陆地, grid[i][j] 0 表示水域。网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰…

VBA技术资料MF88:测试Excel文件名是否有效

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

【Tkinter系列26/45】通用小部件方法

说明 此处讨论小部件方法,凡是可以产生动作的函数均列在此处。包括:定时器、闲暇、绑定、属性配置、布局管理等,属于高级编程的必备知识。了解通用小部件方法,对于客户定制公共类库有极大助益,请务必掌握。 26 通用小部…

系列二十五、Spring设计模式之适配器模式

一、适配器模式 1.1、概述 适配器模式(Adapter Pattern)用于兼容不相关的接口之间,类似于一个桥梁,它结合了两个独立接口的功能,这种类型的设计属于结构型模式,为了方便大家伙的理解,我举个例子…

什么是美颜sdk?集成第三方美颜sdk的步骤

本文将深入探讨如何集成第三方美颜sdk,为直播平台引入更先进、更具吸引力的美颜特效。 第一步:选择合适的第三方美颜sdk 在开始集成美颜sdk之前,首要任务是选择适合自己直播平台需求的第三方美颜sdk。不同的sdk可能具有不同的特色和性能&a…

如何修改.exe文件的修改时间,亲测有效

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 演示视频: 10秒钟实现将文件的修改…

Linux:可视化管理工具Webmin的安装

一、下载 地址:Webmin官网 我这里下载的是1.700-1版本 二、安装 1、在虚拟机上新建目录并安装软件 mkdir /opt/webmin rpm -ivh webmin-1.700-1.noarch.rpm2、修改webmin的root密码 /usr/libexec/webmin/changepass.pl /etc/webmin root 1234563、修改端口(可…

掌握JavaScript中的解构赋值:深入挖掘隐藏的技巧

掌握JavaScript中的解构赋值:深入挖掘隐藏的技巧 前言基础概念为什么解构赋值如此重要?数组解构的基本语法:对象解构的基本语法:默认值: 解构赋值的妙用从对象和数组中提取值:从数组中提取值:从…

docker读取字体异常

解决方法 docker容器中执行 apk add ttf-freefont 根据版本不同 apk add ttf-dejavu-fonts apk add ttf-bernoulli

【开源】基于Vue.js的医院门诊预约挂号系统的设计和实现

项目编号: S 033 ,文末获取源码。 \color{red}{项目编号:S033,文末获取源码。} 项目编号:S033,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 功能性需求2.1.1 数据中心模块2.1.2…

第十五章 Linux

Python基础、函数、模块、面向对象、网络和并发编程、数据库和缓存、 前端、django、Flask、tornado、api、git、爬虫、算法和数据结构、Linux、设计题、客观题、其他 第十五章 Linux 1. 下面的linux命令中, 那个不能显示出文件的内容 A. tacB. moreC. headD. man在下面的…

Ranger安装和使用

Ranger部署 1.准备 1.1 编译 Ranger编译(已经编译过的话,直接看1.2) 1.1.1 准备到Ranger官网下载ranger的源码:http://ranger.apache.org/download.html 1.1.2 Ranger编译的过程实在非虚拟机环境下完成的,下载好r…

chapter10-homework-Java

第十章作业 Homework01知识点 Homework02知识点 Homework03知识点 Homework04知识点 Homework05知识点 Homework06Homework07Homework08 Homework01 分析执行结果。 public static void main(String[] args) {Car_ c new Car_();Car_ c1 new Car_(100);System.out.println(…

Vue中 实现自定义指令(directive)及应用场景

一、Vue2 1. 指令钩子函数 一个指令定义对象可以提供如下几个钩子函数 (均为可选): bind 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。inserted 被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已…