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

这篇具有很好参考价值的文章主要介绍了使用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_3
 
echo "create database ${NEXT_DBNAME}"
create_db_sql="create database IF NOT EXISTS ${NEXT_DBNAME}"

echo ${create_db_sql} | ${MYSQL_CMD}                 #创建数据库  
#判断是否创建成功,&?=0表示上条命令执行成功           
if [ $? -ne 0 ]                                               
then
 echo "create databases ${NEXT_DBNAME} failed ..."
 exit 1
fi
 

show_table_sql="use ${THIS_DBNAME}; show tables;"
show_table_sql_shell=`echo ${show_table_sql} | ${MYSQL_CMD}`
#echo $show_table_sql_shell

create_table_sql=""
for name in $show_table_sql_shell ;
	do
	if [[ $name =~ "Tables_in" ]]
	then
		echo $name
	else
		create_table_sql="${create_table_sql} create table ${NEXT_DBNAME}.${name} like ${THIS_DBNAME}.${name};"
	fi
done

echo "executing ${create_table_sql}"
echo ${create_table_sql} | ${MYSQL_CMD}
echo "create tables done !"


月库生成脚本monthly.sh

#!/bin/bash
. /etc/profile
. ~/.bash_profile

HOSTNAME="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_2
 
echo "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 ]                                               
then
 echo "create databases ${NEXT_MONTH_DBNAME} failed ..."
 exit 1
fi
 

show_table_sql="use ${THIS_MONTH_DBNAME}; show tables;"
show_table_sql_shell=`echo ${show_table_sql} | ${MYSQL_CMD}`
#echo $show_table_sql_shell

create_table_sql=""
for name in $show_table_sql_shell ;
	do
	if [[ $name =~ "Tables_in" ]]
	then
		echo $name
	else
		create_table_sql="${create_table_sql} create table ${NEXT_MONTH_DBNAME}.${name} like ${THIS_MONTH_DBNAME}.${name};"
	fi
done

echo "executing ${create_table_sql}"
echo ${create_table_sql} | ${MYSQL_CMD}
echo "create tables done !"


参考:
https://blog.csdn.net/weixin_51503235/article/details/128620497文章来源地址https://www.toymoban.com/news/detail-587416.html

到了这里,关于使用Shell制作MySQL自动复制日库月库生成新的日库和月库脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • shell命令之cp复制拷贝

    file1.*、file2.*表示某一文件; 在当前目录下,将file1.*的文件内容复制到file2.*文件中,如果第二个文件不存在,则先创建文件,然后再拷贝内容。如果存在则直接覆盖,没有警告; 加-i选项,在覆盖前会询问,其余的操作方式也同理; 加-f选项,在复制时强制复制,其余的操作方

    2024年02月08日
    浏览(55)
  • 使用 shell 脚本自动申请进京证 (六环外) —— debug 过程

    用 shell 脚本写了一个自动办理六环外进京证的工具 《 使用 shell 脚本自动申请进京证 (六环外) 》,然而运行这个脚本总是返回以下错误信息: 咨询 woodheader/jjz 项目的作者,了解到问题就是出在请求头或参数上。仔细的检查了传入的各种参数,没有发现任何问题;修改 http

    2024年02月03日
    浏览(24)
  • shell使用文件通配符{},变量自动添加单引号,无法识别问题

    脚本关键部分如下: 获取一周七天的日期,然后利用通配符,直接查看七天内的文件 weekdays=`/opt/uploadcheck/calculateDate.sh $start_week $end_week` weekdays=`echo $weekdays | awk \\\'{ gsub(/ /,\\\",\\\"); print $0 }\\\'` echo $weekdays zcat /opt/a_\\\"{$weekdays}\\\"_00_001.csv.gz 执行出现错误,通配符没有被解析,而是被当作整

    2024年02月10日
    浏览(41)
  • Linux环境使用docker安装MySQL(简单粗暴,复制即用)

    –name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行 将以下内容复制到文本

    2024年01月17日
    浏览(23)
  • jenkins使用shell脚本自动部署java项目,nohup启动不成功

    百度搜索了很长时间,很多种说法,但是都没说太明白,整合了很长时间,测出来了解决方法,仅测试了自由风格项目和流水线项目,其他的选项未测试,jenkins版本2.400。   以下为正文: 执行脚本时,因为jenkins会在构建结束时,将shell运行期间产生的进程全部关闭,所以n

    2024年02月08日
    浏览(28)
  • 使用AI自动生成PPT提高制作效率

    在制作PPT方面,很多制作者都会轻易跳进一个怪圈:“我要制作一个关于关爱老人的PPT,该怎么做呢,有模板没有?”这个会涉及很多逻辑需要经过不断的思考,制作PPT要通过很多素材、使用技巧、方法经验的不断积累,然而在短时间内制作高质量的PPT这对初学者来说是件非常

    2024年01月17日
    浏览(44)
  • 33. 常用shell之 scp - 安全复制文件 的用法和衍生用法

    scp (secure copy)是一个基于 SSH (Secure Shell) 协议的命令行工具,用于在本地和远程主机之间安全地复制文件。它利用 SSH 提供的加密和身份验证功能,确保在传输过程中数据的安全性。 基本用法 从本地复制到远程服务器 : scp /path/to/localfile username@remotehost:/path/to/remotefile 这个命

    2024年02月01日
    浏览(26)
  • 如何使用copilot自动制作PPT——一分钟代替你半天的工作量

    如何使用copilot一键制作PPT。 年关将至,很多人在这个时候需要制作PPT完成年终汇报,自己制作又很浪费时间,那么不如尝试使用copilot一键自动制作PPT吧。 把节省下来的时间用来专心工(摸)作(鱼)。 copilot制作3页5页乃至更多页PPT的时间基本相同,作为展示,下面的三页

    2024年02月02日
    浏览(27)
  • 基于mysql5.7制作自定义的docker镜像,适用于xxl-job依赖的数据库,自动执行初始化脚本(ddl语句和dml语句)

    xxl-job-admin依赖mysql数据库,且需执行初始化脚本,包括ddl和dml语句。 具体的步骤总结如下: 1、新建数据库xxl_job 2、创建mysql表table 3、执行dml语句,包括新建admin用户及密码,创建执行器和任务。 毫无疑问,人工每次去操作这些,不仅耗费人力和时间,还容易出错。 所以,本

    2024年02月11日
    浏览(39)
  • 【PPT】《使用ChatGPT一键制作带自动配图的PPT演讲稿》- 知识点目录

    为了制作《汽车诞生史》PPT,您可以考虑以下提示: 开场:引用一句关于汽车的名言或警句,如“汽车是现代生活的象征”,“车祸并非事故,而是可以避免的错误”。 起源:介绍汽车的起源和早期发展历史,包括发明汽车的重要人物和他们的贡献。 技术进步:介绍汽车技

    2023年04月09日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包