使用Shell制作MySQL自动复制日库月库生成新的日库和月库脚本

日库生成脚本daily.sh

#!/bin/bash
. /etc/profile
. ~/.bash_profile
HOSTNAME="127.0.0.1"                   #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="datatest"                           #要使用的数据库,没有则会新建MYSQL_CMD="mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD}"
echo ${MYSQL_CMD}# 数据库名定义,本日库,
this_time=$(date +%Y_%-m_%-d) #下个月的月份
THIS_DBNAME="datatest_"$this_time    #具体的表名例datatest_2023_1_2# 数据库名定义,下一日库,
next_time=$(date -d "next day" +%Y_%-m_%-d) #下个月的月份
NEXT_DBNAME="datatest_"$next_time    #具体的表名例datatest_2023_1_3echo "create database ${NEXT_DBNAME}"
create_db_sql="create database IF NOT EXISTS ${NEXT_DBNAME}"echo ${create_db_sql} | ${MYSQL_CMD}                 #创建数据库  
#判断是否创建成功,&?=0表示上条命令执行成功           
if [ $? -ne 0 ]                                               
thenecho "create databases ${NEXT_DBNAME} failed ..."exit 1
fishow_table_sql="use ${THIS_DBNAME}; show tables;"
show_table_sql_shell=`echo ${show_table_sql} | ${MYSQL_CMD}`
#echo $show_table_sql_shellcreate_table_sql=""
for name in $show_table_sql_shell ;doif [[ $name =~ "Tables_in" ]]thenecho $nameelsecreate_table_sql="${create_table_sql} create table ${NEXT_DBNAME}.${name} like ${THIS_DBNAME}.${name};"fi
doneecho "executing ${create_table_sql}"
echo ${create_table_sql} | ${MYSQL_CMD}
echo "create tables done !"

月库生成脚本monthly.sh

#!/bin/bash
. /etc/profile
. ~/.bash_profileHOSTNAME="127.0.0.1"                   #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="datatest"                           #要使用的数据库,没有则会新建MYSQL_CMD="obclient -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD}"
echo ${MYSQL_CMD}# 数据库名定义,本月库,
this_month_time=$(date +%Y_%-m) #下个月的月份
THIS_MONTH_DBNAME="datatest_"$this_month_time    #具体的表名例datatest_2023_1# 数据库名定义,下月库,
next_month_time=$(date -d "next month" +%Y_%-m) #下个月的月份
NEXT_MONTH_DBNAME="datatest_"$next_month_time    #具体的表名例datatest_2023_2echo "create database ${NEXT_MONTH_DBNAME}"
create_db_sql="create database IF NOT EXISTS ${NEXT_MONTH_DBNAME}"echo ${create_db_sql} | ${MYSQL_CMD}                 #创建数据库  
#判断是否创建成功,&?=0表示上条命令执行成功           
if [ $? -ne 0 ]                                               
thenecho "create databases ${NEXT_MONTH_DBNAME} failed ..."exit 1
fishow_table_sql="use ${THIS_MONTH_DBNAME}; show tables;"
show_table_sql_shell=`echo ${show_table_sql} | ${MYSQL_CMD}`
#echo $show_table_sql_shellcreate_table_sql=""
for name in $show_table_sql_shell ;doif [[ $name =~ "Tables_in" ]]thenecho $nameelsecreate_table_sql="${create_table_sql} create table ${NEXT_MONTH_DBNAME}.${name} like ${THIS_MONTH_DBNAME}.${name};"fi
doneecho "executing ${create_table_sql}"
echo ${create_table_sql} | ${MYSQL_CMD}
echo "create tables done !"

参考:
https://blog.csdn.net/weixin_51503235/article/details/128620497

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

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

相关文章

【深入探究人工智能】:历史、应用、技术与未来

深入探究人工智能 前言人工智能的历史人工智能的应用人工智能的技术人工智能的未来当代的人工智能产物结语🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 &am…

LangChain大型语言模型(LLM)应用开发(三):Chains

LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

【UE4 塔防游戏系列】10-防御塔升级

目录 效果 步骤 一、根据防御塔等级修改子弹伤害 二、根据防御塔等级修改子弹速度 三、根据防御塔等级修改检测半径 四、根据防御塔等级修改子弹颜色 五、根据防御塔等级修改换弹时间 效果 步骤 一、根据防御塔等级修改子弹伤害 1. 打开“TowerBaseBullet_Child”&…

现代C++语言核心特征解析——专栏介绍

本专栏用来介绍C新特性,其中包括C11、C14、C17、C20的特性。 下面是C各个版本的出现时间: C版本 时间C112011~2013C142014~2016C172017~2019C202020~2022C232023~ 接下来特性更新的顺序不会按…

52 类 110 个常用 Java 组件和框架整理

目录 WEB 容器 数据库 缓存 消息队列 负载均衡 分布式存储 数据库集群 分布式协调 大数据相关 日志收集与分析 搜索 系统监控 分库分表 微服务 RPC 框架 网络框架 MVC 框架 数据层框架 数据库连接池 Redis 客户端 Rest 接口设计与开发 数据参数校验 安全…

【ArcGIS Pro二次开发】(48):三调土地利用现状分类面积汇总统计

之前做了一个三调三大类面积统计,有小伙伴反映太粗糙,想要一个完整的地类面积汇总表。 【ArcGIS Pro二次开发】(35):三调三大类面积统计 本质上并没有多少难度,之前也做过类似的用地用海汇总表,于是拿出来改一改就好了…

python类中的@classmethod和@staticmethod

classmethod classmethod修饰符对应的函数不需要实例化,无需self参数,但需要cls参数以调用类的属性、类的方法 class A:a 10def printb(self, b):print(b)classmethoddef printa(cls):print(cls.a)print(cls().printb(5))A.printa()"""…

scrapy---爬虫中间件和下载中间件

爬虫中间件 # 爬虫中间件 (了解) middlewares.py class MysfirstscrapySpiderMiddleware:classmethoddef from_crawler(cls, crawler):# This method is used by Scrapy to create your spiders.s cls()crawler.signals.connect(s.spider_opened, signalsignals.spider_opene…

JavaScript的static、this、super关键字介绍

JavaScript的static、this、super关键字介绍 static关键字: ☆ static关键字用于定义类的静态方法和静态属性。 ☆ 静态方法是直接与类相关联的方法,不需要实例化类即可调用。 ☆ 静态属性是类本身的属性,而不是实例的属性。 ☆ 在静态方…

Git学习总结

Git学习 目录 Git学习1.基础1.1 Git Commit:提交记录1.2 Git Branch:创建分支1.3 Git Merge:合并分支的方式一1.4 Git Rebase:合并分支的方式二1.5 查看提交记录:提交历史、详细信息、commit_hash1.6 在提交树上移动 2. 高级2.1 HEAD2.2 相对引用2.3 使用相对引用强…

css 弹性布局的详细说明

CSS弹性布局(Flexible Box Layout,简称Flexbox)是一种用于创建自适应和可伸缩布局的CSS模块。它提供了一种简单而强大的方式来对容器中的子元素进行布局,使它们能够自动调整大小、排列和对齐。 Flexbox通过在容器和子元素上应用一…

window 命令笔记

1.查看端口 输入“netstat -ano”并回车可以获得所有网络连接活动的列表,在表中,本地地址IP地址后方冒号之后的即是端口号: 如果想要查找特定的端口可以输入命令“netstat -aon|findstr “端口号””,例如“netstat -aon|findstr…

My_window类(带有next和quit按钮)

运行代码: //My_window类(带有next和quit按钮) #include"std_lib_facilities.h" #include"GUI/Simple_window.h" #include"GUI/GUI.h" #include"GUI/Graph.h" #include"GUI/Point.h"//--…

解决错误 “Plugin ‘maven-clean-plugin:3.1.0‘ not found“ 的方法详解

系列文章目录 文章目录 系列文章目录前言一、检查 Maven 插件版本:二、检查 Maven 仓库:三、检查 Maven 配置:总结 前言 在使用 Maven 构建项目时,可能会遇到错误信息 “Plugin ‘maven-clean-plugin:3.1.0’ not found”&#x…

C++基础算法离散化及区间合并篇

📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要讲解了双指针,位运算,离散化以及区间合并。…

有效的括号(C)

bool isValid(char* s) {ST st;StackInit(&st);while (*s) //遍历 -- 与\0终止{//是左括号 压栈if (*s ( || *s [ *s {){StackPush(&st, *s);s;}else{//应对样例: ’]if (StackEmpty(&st)){StackDestroy(&st);return false;}//不是左括号 应该就…

Spark MLlib快速入门(1)逻辑回归、Kmeans、决策树、Pipeline、交叉验证

Spark MLlib快速入门(1)逻辑回归、Kmeans、决策树案例 除了scikit-learn外,在spark中也提供了机器学习库,即Spark MLlib。 在Spark MLlib机器学习库提供两套算法实现的API:基于RDD API和基于DataFrame API。今天,主要介绍下Data…

docker k8s

Docker docker到底与一般的虚拟机有什么不同呢? 我们知道一般的linux系统即GNU/Linux系统包括两个部分,linux系统内核GNU提供的大量自由软件,而centos就是众多GNU/Linux系统中的一个。 虚拟机会在宿主机上虚拟出一个完整的操作系统与宿主机完…

在 3ds Max 中对链模型进行摆放姿势处理

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 建模和“摆姿势”3D链可能看起来是一项繁琐的工作,但实际上可以通过使用阵列工具并将链中的链接视为骨骼来轻松完成。在本教程中,我将向您展示如何对链条进行建模,并通过…

程序员的自我修养(4)

可执行文件的装载与进程 代码经过预编译,编译,汇编,链接过程后生成可执行文件,但可执行文件只有装载到内存程序才可以运行,这节讲可执行文件在linux下的装载过程,以及与进程的关系等等。 1.程序与进程的关…