在linux上面使用shell脚本统计MYSQL数据情况

本公司涉及到一部分数据推送的业务,然后因为是配置数据传输任务的方式做的,但是有时候数据任务会出现问题,可能不推送等等情况,所以需要有个程序监控是否数据推送完成,简单就是检测规则就是定时跑源数据表和推送目标表的最大ID,然后进行比较。我用Java开发,成本有点大,就直接用Shell脚本简单写一下。

#! /bin/bash
# 将定时跑批任务的结果数据到一张表里
MANAGE_USERNAME=root 
MANAGE_PASSWORD=root
MANAGE_PORT=3306
MANAGE_IPADDRESS=192.168.21.103# 目标库
PRE_USERNAME=root 
PRE_PASSWORD=root
PRE_PORT=3306
PRE_IPADDRESS=192.168.21.104# 查询需要跑批的数据表
tables_names=`mysql -u${MANAGE_USERNAME} -p${MANAGE_PASSWORD} -h ${MANAGE_IPADDRESS} -P${MANAGE_PORT} -e "select table_name from test.table_push_info where table_status=0;" | awk 'NR>1{print $1}'`
for name in $tables_names;# 打印看一下效果echo $name

拿到表之后就可以用来跑批

max_id=`mysql -u${PRE_USERNAME} -p${PRE_PASSWORD} -h ${PRE_IPADDRESS} -P${PRE_PORT} -e "select COALESCE(id,0) from test.$name order by id desc limit 1;" | tail -1`
# 因为存在如果是没有数据,返回空,这边就判断为空的时候,插入0if [ ! $max_id ];thenmysql -u${MANAGE_USERNAME} -p${MANAGE_PASSWORD} -h ${MANAGE_IPADDRESS} -P${MANAGE_PORT} test -e "update test.table_push_info set max_id=0,update_time=now() where table_name='$name';"  else	mysql -u${MANAGE_USERNAME} -p${MANAGE_PASSWORD} -h ${MANAGE_IPADDRESS} -P${MANAGE_PORT} test -e "update test.table_push_info set max_id=$max_id,update_time=now() where table_name='$name';"  fi

上述就是简单完成了

#! /bin/bash
# 将定时跑批任务的结果数据到一张表里
MANAGE_USERNAME=root 
MANAGE_PASSWORD=root
MANAGE_PORT=3306
MANAGE_IPADDRESS=192.168.21.103# 目标库
PRE_USERNAME=root 
PRE_PASSWORD=root
PRE_PORT=3306
PRE_IPADDRESS=192.168.21.104# 查询需要跑批的数据表
tables_names=`mysql -u${MANAGE_USERNAME} -p${MANAGE_PASSWORD} -h ${MANAGE_IPADDRESS} -P${MANAGE_PORT} -e "select table_name from test.table_push_info where table_status=0;" | awk 'NR>1{print $1}'`
for name in $tables_names;
do max_id=`mysql -u${PRE_USERNAME} -p${PRE_PASSWORD} -h ${PRE_IPADDRESS} -P${PRE_PORT} -e "select COALESCE(id,0) from test.$name order by id desc limit 1;" | tail -1`# 因为存在如果是没有数据,返回空,这边就判断为空的时候,插入0if [ ! $max_id ];thenmysql -u${MANAGE_USERNAME} -p${MANAGE_PASSWORD} -h ${MANAGE_IPADDRESS} -P${MANAGE_PORT} test -e "update test.table_push_info set max_id=0,update_time=now() where table_name='$name';"  else	mysql -u${MANAGE_USERNAME} -p${MANAGE_PASSWORD} -h ${MANAGE_IPADDRESS} -P${MANAGE_PORT} test -e "update test.table_push_info set max_id=$max_id,update_time=now() where table_name='$name';"  fi
done

之后将将该程序部署到crontab就好

> chmod +x update_id.sh
> crontab -e
0 * * * * /data/update_id.sh

这样就可以每小时执行一次脚本

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

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

相关文章

抖音发布最新公告,清退所有全国本地生活服务商.

11月27日,抖音发布最新公告,一文公告让本地生活服务商行业鬼哭狼嚎,公告很明确,只保留了区域服务商,全国性的所有服务商被清退。 我们再来看看抖音本地生活的前世今生,最开始的时候抖音本地生活全部是自己部…

QT用户管理效果预览

用户管理效果 QT 用户管理 GITHUB网站 QT版本 CMakeList.txt find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Sql REQUIRED) target_link_libraries(tableView PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Sql)GitHub代码获取链接 GitHub代码获取链接

Java stream流toMap使用过程中空指针问题

Java8中stream操作list时常见的一个错误: 排查原因: 定位到代码中发现从数据查询是存在数据的 排查stream前对象为null的情况,那问题只能出现在toMap这里了 我们需要知道toMap是怎么帮我们封装数据的,先搞明白toMap的原理&#…

“error LNK1169: 找到一个或多个多重定义的符号”的解决方法

问题描述如下: 有 三个源文件,A.h、B.cpp、C.cpp。 A.h是头文件,其中声明了三个变量a1、a2、 a3。 B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件。B.cpp和C.cpp中均包含头文件 A.h。 在编译时,编译能够通…

用在半导体CST材料搬运AGV小车的RFID

RFID(RadioFrequencyIdentification),又称无线射频识别技术,可通过射频信号进行非接触式的识别目标,近些年来被广泛应用在半导体制造业中,用于半导体行业的晶圆存储柜、电子货架、硅晶片清洗、半导体天车等…

YoloV8改进策略:双动态令牌混合器(D-Mixer)的TransXNet,实现YoloV8的有效涨点

摘要 双动态令牌混合器(D-Mixer),一种输入依赖的方式聚合全局信息和局部细节。D-Mixer通过分别在均匀分割的特征片段上应用有效的全局注意力模块和输入依赖的深度卷积,使网络具有强大的归纳偏差和扩大的有效感受野。使用D-Mixer作为基本构建块设计了TransXNet,这是一种新…

STM32——超声波传感器

需求: 使用超声波测距,当手离传感器距离小于 5cm 时, LED1 点亮,否则保持不亮状态 接线: 定时器配置: 使用 TIM2 ,只用作计数功能,不用作定时。 将 PSC 配置为 71 ,…

Java实现Leetcode题(栈和队列)

Leetcode232(用栈实现队列) package stack_queue;import java.util.Stack;public class Leetcode232 {public static void main(String[] args) {MyQueue myQueue new MyQueue();myQueue.push(1);myQueue.push(2);System.out.print(myQueue.peek());Sy…

基于K-means与CNN的遥感影像分类方法

基于K-means与CNN的遥感影像分类 一、引言 1.研究背景 航天遥感技术是一种通过卫星对地观测获取遥感图像信息数据的技术,这些图像数据在各领域都发挥着不可或缺的作用。遥感图像分类主要是根据地面物体电磁波辐射在遥感图像上的特征,判断识别地面物体的属…

推荐算法:HNSW【推荐出与用户搜索的类似的/用户感兴趣的商品】

HNSW算法概述 HNSW(Hierarchical Navigable Small Word)算法算是目前推荐领域里面常用的ANN(Approximate Nearest Neighbor)算法了。其目的就是在极大量的候选集当中如何快速地找到一个query最近邻的k个元素。 要找到一个query的…

uniapp微信小程序点击保存图片

一:需要用到的API 1.uni.uploadFile(OBJECT) 将本地资源上传到开发者服务器 uni.uploadFile(OBJECT) | uni-app官网 2. uni.saveImageToPhotosAlbum(OBJECT) 保存图片到系统相册。 uni.chooseImage(OBJECT) | uni-app官网 注意:微信小程序在2023年…

【参数汇总】mysql服务端/客户端常见优化参数

mysql服务端参数 1、innodb_buffer_pool_size (innodb索引buffer pool缓冲区大小) 默认大小为128M, 官方推荐其配置为系统内存的 50% 到 75% 。 一般innodb_buffer_pool_size要结合以下两个参数来设置: innodb_buffer_pool_ch…

【1.计算机组成与体系结构】浮点数的表示

目录 1.浮点数的表示2.运算过程3.特点 1.浮点数的表示 N尾数*基数(指数/也称为阶码) 例如:1.25x105 ; 1.255x103 2.运算过程 对阶>尾数计算>结果格式化 3.特点 1、一般尾数用补码,阶码用移码 2、阶码的位数决定数的表示范围,位数越…

本地部署 Qwen-Audio-Chat

本地部署 Qwen-Audio-Chat Qwen-Audio-Chat 介绍Qwen-Audio Github 地址部署 Qwen-Audio-Chat安装 ffmpeg克隆代码库创建虚拟环境使用 pip 安装 pytorch使用 pip 安装依赖使用 ModelScope运行 Web UI Qwen-Audio-Chat 介绍 Qwen-Audio-Chat是通用语音多模态大规模语言模型&…

Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

什么是循环依赖,如何解决

目录 什么是循环依赖? 循环依赖的原因: 如何解决循环依赖问题? 最佳实践和注意事项: 结论: 当在使用 Spring Boot 进行开发时,循环依赖(Circular Dependency)可能会成为一个常见…

广东省工业和信息化厅工业互联网处一行莅临科东软件考察调研

近日,广东省工业和信息化厅工业互联网处副处长郑华、广东省科学院智能制造研究所副所长曹永军等一行领导、专家莅临科东软件,就聚焦工业数字化转型,助推新型工业化高质量发展进行考察调研。 科东软件陪同郑华副处长一行参观科东软件展厅&…

学习笔记——GDB调试器

感谢B站up主 xiaobing1016 的学习视频:基于VSCode和CMake实现C/C开发 | Linux篇_哔哩哔哩_bilibili

Redis缓存异常问题,常用解决方案总结

前言 Redis缓存异常问题分别是:1.缓存雪崩。2.缓存预热。3.缓存穿透。4.缓存降级。5.缓存击穿,以 及对应Redis缓存异常问题解决方案。 1.缓存雪崩 1.1、什么是缓存雪崩 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有…

华为OD试题一(磁盘容量排序、数大雁、计算疫情扩散时间)

1. 磁盘容量排序 题目描述:磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T 1024G,1G 1024M,现在给定n块磁盘的容量,请对它们按从小到大的顺序进行稳定排序,例如给…