#!/bin/bash
source /etc/profile
#mysql执行客户端
mysql_c='mysql -h 127.0.0.1 -u root -e'
#需要切割或者分析的表名
table=""
#统计哪天数据(默认分析上一天数据)
statDate=`date -d '-1 day' +'%F'`
##切割表、当指定表文件>1GB时执行
function split_table()
{
if [ -z "$table" ];then
echo "table can't be empty"
return 0
fi
tfile="/data/mysql/db_log/$table.ibd"
if [ ! -f "$tfile" ];then
echo "split_table `date +'%F %H:%M:%S'` db file not found $tfile"
return 0
fi
fsize=`ls -l $tfile 2>/dev/null | awk -F ' ' '{print $5}'`
((compGB=1024))#*1024*1024*1))
if [[ -z "$fsize" || $fsize -lt $compGB ]];then
echo "split_table `date +'%F %H:%M:%S'` $tfile < 1GB 不需要切分"
return 1;
fi
bak_table="$table"_`date +'%y%m%d%H'`
tmp_table="$table"_bak;
sql="create table if not exists db_log.$tmp_table like db_log.$table;
alter table db_log.$table rename db_log.$bak_table;
alter table db_log.$tmp_table rename db_log.$table;
"
echo "split_table `date +'%F %H:%M:%S'` start fileSize[$fsize B],rename[$table to $bak_table]"
$mysql_c "$sql" #执行切表
echo "split_table `date +'%F %H:%M:%S'` end fileSize[$fsize B],rename[$table to $bak_table]"
}
case "$1" in
splitTable)
#指定表切割
if [ -n "$2" ];then
table="$2"
split_table
return
fi
table="tb_stats_log"
split_table
;;
*)
"Using :(splitTable)"
;;
esac
exit 0
分享到:
相关推荐
nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割,压缩包包含shell切割脚本和使用说明,该脚本适合nginx同时也适合其他类似服务的日志切割,只要简单修改shell脚本即可,灵活多变,实用。
4、编写程序实现一个简单的员工档案管理系统,具备简单的员工资料增加、删除和查询等功能,并采用二进制文件保存员工的资料信息。 5、为了便于文件的管理和传输,某些时候需要将特别大的文件切割为多个指定长度小的...
Shell脚本经典案例,sh脚本语法参考,封装参考,SH脚本文件案例,BASH脚本文件参考,Linux脚本文件参考,sh脚本文件写法参考,SH...shell 脚本 (.sh) 编写及执行参考代码,简单有效,案例,参数传递,经典实例大全。
分享一个入门级可控多线程shell脚本方案 下面张戈博客再分享另一种更容易理解的入门级可控多线程shell脚本方案:任务切割、各个击破。 先来 1 段场景描述: 某日,在鹅厂接到了这个任务,需要在Linux服务器中,对几...
主要介绍了Shell脚本实现简单分割字符串,本文讲解使用CUT命令实现以逗号、分号或其它分隔符来切割字符串,需要的朋友可以参考下
平日里,我们需要把 Nginx 的错误日志输出到文件里,但是时间一长,文件就特别大,之前我服务器上日志就一周没管它,今天一看日志文件都32个G了,大的吓人。于是就写了个日志切割的脚本。 原理 其实日志切割脚本的...
Nginx日志切割-按小时序言原理Shell脚本验证脚本定时配置 序言 最近调试接口,做ip授权,涉及到了查看nginx日志,但是由于每日数据量太大,导致从现场导出日志过于费劲,时间过于漫长,所以想到了给日志做时间切割! ...
Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Z_HOUDINI Houdini hda的收藏集中于过程建模和游戏开发。 其中许多都是WIP且可能无法正常使用,所有工具均已解锁为开放源代码,随时可以编辑\重新分发! 归功于Gamedev sidefxlab,qL和... :通过另一个网格的uvs变
│ └─31 实现.dfm文件和.txt文件的互相转换 ├─3第三节 Shell研究 │ ├─30 为程序创建快捷方式 │ ├─29 获取Windows的若干特殊文件夹路径(二) │ ├─28 获取Windows的若干特殊文件夹路径(一) ...
将宝石推到与宝石切割机兼容的存储库中的操作。 可能是RubyGems或GitHub软件包。 它期望已经使用环境变量GEM_HOST和GEM_HOST_API_KEY设置了身份验证。 请参阅以获取将其设置为推送至GitHub的操作。 如果仓库中已经...
69_开启和关闭一个进程 70_hadoop常用的命令和关闭防火墙) Q" A0 B3 M8 s3 ? 71_hadoop存储为何是128M 72_hadoop的存储问题 73_hadoop的高可用 74_配置hadoop临时目录 75_hadoop的hdfs的jar包 76_hadoop的存储问题+ ...