HTS恢复检查脚本

#!/bin/bash
#program:HTS-A数据库和插件检查
#author:sundz
#version 20220531 v1 创建脚本 生成sql的表和字段汇总;aboss5版本
#version 20220805 v2 添加备份文件夹;添加关于资金汇总 持仓汇总至sql_file;添加文件时间戳;每个库都添加日期判断是否恢复成功
#version 20220816 v3 检查是否恢复成功也加入进程判断;添加总行数汇总
#ip_0和ip_1获取IP后缀 以作区分
ip_0=ip a | grep inet | grep -v inet6 | awk 'NR==2{print $2}' | cut -d '.' -f 4
ip_1=${ip_0%%/*}
date=$(date +%Y%m%d)
#log_time=$(date +%H:%M:%S)
backup_floder=/home/aboss/backup/${date}
file_time=$(date +%Y%m%d%H%M%S)
sql_file=sqlchk_${file_time}.txt
#axtool_file=aboss5_ver_${file_time}_${ip_1}.txt
axtool_file=aboss5_ver_${file_time}.txt
#检测当天文件夹是否存在
[ ! -d ${backup_floder} ] && mkdir -p ${backup_floder}
echo 'excuting...'
#mysql数据备份检查
mysql_chk=ps x | grep 3306 | grep -v 'grep' | wc -l
if [ "${mysql_chk}" == 1 ]; then
#资金汇总
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e \
'select sum(ZHYE) ZHYE from a5_fund.tfc_zjzh;' > ${sql_file} 2>/dev/null
#持仓汇总
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e \
'select sum(ZQSL) ZQSL from a5_sectrade.tsc_zqgl;' >> ${sql_file} 2>/dev/null
#总行数汇总
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e \
'select sum(TABLE_ROWS) ALL_ROWS from information_schema.TABLES t
where
t.TABLE_SCHEMA in ("a5_dtx","a5_fund","a5_manage","a5_secinit","a5_sectrade","a5_sysinfo") and t.TABLE_NAME not like "%copy%";' >> ${sql_file} 2>/dev/null
#检查表名
echo "开始所有表汇总..." >> ${sql_file}
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e \
'select t.TABLE_SCHEMA , t.TABLE_NAME ,t.TABLE_COLLATION from information_schema.TABLES t
where
t.TABLE_SCHEMA in ("a5_dtx","a5_fund","a5_manage","a5_secinit","a5_sectrade","a5_sysinfo") and t.TABLE_NAME not like "%copy%";' >> ${sql_file} 2>&1
#检查字段
echo "开始表字段汇总..." >> ${sql_file}
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e \
'select c.TABLE_SCHEMA ,c.TABLE_NAME ,c.COLUMN_NAME ,c.COLUMN_TYPE ,c.COLUMN_KEY from information_schema.COLUMNS c
where c.TABLE_SCHEMA in ("a5_dtx","a5_fund","a5_manage","a5_secinit","a5_sectrade","a5_sysinfo")
and c.TABLE_NAME not like "%copy%";' >> ${sql_file} 2>&1
mv ${sql_file} ${backup_floder}
#检查是否恢复成功
temp=temp.txt
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'select * from a5_dtx.tq2_work where jyrq=curdate();' > ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'SELECT * FROM a5_odeliver11.tod_hostchk where date=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'SELECT * FROM a5_odeliver12.tod_hostchk where date=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'select * from a5_fund.tfc_xtzt where JYRQ=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'select * from a5_manage.tmc_xtzt where JYRQ=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'select * from a5_sectrade.tsc_xtzt where JYRQ=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'select * from a5_secinit.tsc_xtzt where JYRQ=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'SELECT * from a5_sc_syncnode1_11.tnodeinfo where TradeDate=curdate();' >> ${temp}  2>/dev/null
mysql -uroot -pP@ssw0rd123.abc -h127.0.0.1 -P3306 -e 'SELECT * from a5_sc_syncnode1_12.tnodeinfo where TradeDate=curdate();' >> ${temp}  2>/dev/null
echo "检查恢复结果...周五请忽略"
[ -s ${temp} ] && echo "检查不通过" || echo "检查通过"
else
    echo "[ERROR] mysql process not running,please check"
    echo "[ERROR] $(date +%Y%m%d%H%M%S) mysql process not running,please check" > ${sql_file}
    mv ${sql_file} ${backup_floder}
fi

#aboss程序检查
cd /home/aboss/aboss5/bin
./axtool hotfix -b all > ${axtool_file} 2>&1
mv ${axtool_file} ${backup_floder}
echo "excuted"

#压缩删除生成文件,按照IP获取后缀 看现场需求,如有可启用
#cd
#tar zcvf chk_A_${date}_${ip_1}.tgz ${sql_file} ${axtool_file} > /dev/null
#rm ${axtool_file} ${sql_file} > /dev/null
#echo 'excuted...'

Original: https://www.cnblogs.com/sunfankun/p/16553306.html
Author: 孙犯困
Title: HTS恢复检查脚本

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583102/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Shell第四章《正则表达式》

    1.1、名词解释 正则表达式(regular expression, RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/…

    Linux 2023年6月6日
    096
  • JPA作持久层操作

    JPA(Hibernate是jpa的实现) jpa是对实体类操作,从而通过封装好的接口直接设置数据库的表结构。虽然jpa可以直接通过编写java代码来操作数据库表结构,避免了sql…

    Linux 2023年6月7日
    0114
  • window.parent、window.top、window.self

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口。 1.wi…

    Linux 2023年6月7日
    071
  • MSSQL中游标的语法结构

    | 0.21分钟 | 342.4字符 | 1、引言&背景 2、开箱即用的游标结构 3、声明与参考资料 | SCscHero | 2022/4/30 PM10:3 | 系列 …

    Linux 2023年6月14日
    078
  • DOS-批处理隐藏自身窗口

    批处理隐藏运行效果代码,防止出现黑窗口不建议非法用途,可以用来执行命令,提供用户体验。 运行bat时隐藏cmd窗口的方法 运行bat时隐藏cmd窗口的方法 可以编辑一个vbs脚本,…

    Linux 2023年6月8日
    096
  • 06-MyBatis中ResultType和ResultMap的区别

    MyBatis中ResultType和ResultMap的区别 如果数据库结果集中的列名和要封装的属性名完全一致的话用 resultType属性 如果数据库结果集中的列名和要封装实…

    Linux 2023年6月7日
    096
  • centos7用rpm安装mysql5.7【初始用yum安装发现下载非常慢,就考虑本地用迅雷下载rpm方式安装】

    1.下载 4个rpm包 mysql-community-client-5.7.26-1.el7.x86_64.rpmmysql-community-common-5.7.26-1….

    Linux 2023年6月7日
    086
  • redis高级

    1 redis高可用 主从复制存在的问题: 1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master—>哨兵 2 主从复制,只能主…

    Linux 2023年6月14日
    085
  • 【.Net vs Java? 】 看一看二者的类有多像?

    1. 包(Package)、命名空间(NameSpace) 在Java中常用的是包(Package),较少提到NameSpace的概念。Java官方文档中这样说: 为了使类型更易于…

    Linux 2023年6月7日
    080
  • 解决word插入新图片后原有图片题注的交叉引用错乱的问题

    引言 在日常工作和生活中,我们经常使用word来撰写文档、论文。为了更好地管理文档中的图片以及在正文中引用图片标题,需要借助题注来实现。通过题注,可以在正文中交叉引用图片,并为引用…

    Linux 2023年6月7日
    0136
  • linux 普通分区与lvm分区

    安装linux系统时 有时候会提示lvm分区与标准分区 首先普及一下lvm分区:lvm是 logical volume manager (逻辑卷管理),linux环境下对磁盘分区的…

    Linux 2023年6月14日
    085
  • 小程序字节转GBK及UTF8

    前段时间在Android原生搞的BLE扫码枪又要移植到小程序上来。本以为小程序不支持BLE的,结果一搜,还真支持-_-|| 。 蓝牙部分问题不大,遇到的主要问题是, 小程序环境如何…

    Linux 2023年6月13日
    0176
  • ubuntu安装MySQL8.0.30

    ubuntu版本:Ubuntu 18.04.5 LTS MySQL版本:从8.0.25升级到8.0.30(2022年7月30号看,是最新版本) 升级目的:客户检测数据库服务器的my…

    Linux 2023年6月14日
    084
  • php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/; 还有class.smtp.php. 2.去配置一…

    Linux 2023年6月14日
    071
  • 【CentOS】检查系统是否安装OpenSSH

    CentOS7 远程联机 哔哩哔哩 萌狼蓝天 博客:https://mllt.cc 微信公众号:萌狼蓝天 检查与安装配置OpenSSH [CentOS7]检查系统是否安装OpenS…

    Linux 2023年5月27日
    088
  • Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 测试脚本 $ 和 $@* 的区别 $ 和 $@ 都表示传递给函数或脚本的所有参数,不被双引…

    Linux 2023年5月28日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球