`
j2ee_yohn
  • 浏览: 171775 次
  • 性别: Icon_minigender_1
  • 来自: 湖南/株洲
社区版块
存档分类
最新评论

一个简单的切割shell

阅读更多
#!/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
0
1
分享到:
评论

相关推荐

    nginx日志切割shell脚本

    在给定的脚本中,使用bash shell编写了一个简单的日志切割脚本,它通过命令行工具如`mv`(移动文件)和`date`(处理日期)来实现日志的重命名和时间戳的添加。 4. **USR1信号**:在Nginx中,向主进程发送USR1信号...

    shell脚本对文本文件的切割

    在计算机领域,切割文本文件通常指的是将一个大文件分割成若干个小文件,这在处理大型日志文件、数据备份或数据分析时非常有用。在Shell中,我们可以利用`cut`命令来实现这个功能。 `cut`命令的基本语法是: ```...

    100个shell脚本合集

    多循环备份则按照数据库-表的方式,每个表单独备份到一个文件,这样有利于管理和恢复。脚本中使用了mysqldump命令进行备份,指定主机、用户、密码、备份目录和数据库名。 4. Nginx 访问日志按天切割:为了便于日志...

    Linux shell编程文档

    # 这是一个简单的Shell脚本 a="Hello World" echo "A is: $a" ``` 保存文件为`hello.sh`,并使用`chmod +x hello.sh`设置执行权限,然后通过`./hello.sh`运行脚本。 ##### 注释 - 在Shell脚本中,以`#`开头的行被...

    9 个实用 Shell 脚本,直接部署,简单实用

    本文档收集了 9 个实用 Shell 脚本,涵盖 Dos 攻击防范、Linux 系统发送告警、MySQL 数据库备份、Nginx 访问访问日志切割等多个方面。 1. Dos 攻击防范(自动屏蔽攻击 IP) 该脚本用于自动屏蔽攻击 IP,保护服务器...

    Linux中tomcat日志切割

    如果你不想使用`logrotate`,也可以编写一个简单的shell脚本来完成日志切割。以下是一个基本的示例: ```bash #!/bin/bash # 获取当前日期 DATE=$(date +%Y%m%d) # 备份并压缩旧的日志文件 mv /var/log/tomcat/...

    nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割

    nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割,压缩包包含shell切割脚本和使用说明,该脚本适合nginx同时也适合其他类似服务的日志切割,只要简单修改shell脚本即可,灵活多变,实用。

    SHELL日志功能(log4sh)

    `log4sh`,一个专为Shell脚本设计的日志模块,提供了强大的日志记录功能,具有自定义格式、自定义级别等特性,使得在Shell环境中进行日志管理变得简单高效。 1. **日志级别** `log4sh`支持多种日志级别,包括`...

    shell 图书管理系统

    - **图书管理系统概述**:该脚本为一个简单的图书管理系统,运行在Linux环境下的Ubuntu 8.10操作系统上。主要功能包括编辑图书信息(添加、更新状态、显示和删除)、生成报告等。 #### 二、Shell命令详解 - **#!/...

    shell ,txt

    使用 `export` 命令可以将一个变量导出到环境变量中。 例如: ```sh export VAR=value ``` ##### 2.5 常用 Shell 命令 在 Shell 脚本中,经常需要用到各种命令来实现特定功能。以下是一些常用的命令及其用法: - ...

    常用shell脚本,更加快捷的管理服务器

    以下是一个简单的 shell 脚本示例: ```bash #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{...

    Shell脚本切割tomcat的日志文件

    这个简单的Shell脚本解决方案虽然不能做到精确控制日志文件的大小(切割点可能在100~102MB之间),但对于大多数场景来说已经足够有效。如果需要更精细的控制,可以考虑使用专业的日志管理工具,如Logrotate,它可以...

    linux大作业报告

    4、编写程序实现一个简单的员工档案管理系统,具备简单的员工资料增加、删除和查询等功能,并采用二进制文件保存员工的资料信息。 5、为了便于文件的管理和传输,某些时候需要将特别大的文件切割为多个指定长度小的...

    linux简单的模拟shell源码及报告

    在完成了《现代操作系统》课程的学习后,为了更深入地理解操作系统的内部机制,尤其是进程管理以及进程间通信等内容,选择了一个具体的项目——编写一个简单的命令解释器来模拟Shell的功能。该项目不仅有助于巩固已...

    Shell 编程

    下面是一个简单的Shell脚本示例,用于展示如何使用Shell脚本来完成一些基本的任务: ```bash #!/bin/bash # 设置变量 a="hello world" # 使用变量 echo "Message: $a" # 条件判断 if [ "$a" == "hello world" ]; ...

    Shell脚本服务管理命令行工具合集(40个案例)BASH脚本SH案例参考Linux脚本写法规范学习参考传参封装切割处理等

    Shell脚本经典案例,sh脚本语法参考,封装参考,SH脚本文件案例,BASH脚本文件参考,Linux脚本文件参考,sh脚本文件写法参考,SH...shell 脚本 (.sh) 编写及执行参考代码,简单有效,案例,参数传递,经典实例大全。

    《Linux shell脚本全面学习》pdf版电子书

    # 这是一个注释,用于解释下面的命令 echo "Hello, World!" # 这也是注释,但仅限于这一行 ``` **1.1.3 变量** - **定义**: Shell脚本中的变量不需要预先声明,可以直接使用。 - **赋值与使用**: 使用等号 `=` ...

    Shell编程基础.pdf

    尽管现代Linux系统提供了丰富的图形界面工具,但是Shell仍然是一个非常强大且灵活的工具,特别是在处理批量任务和系统管理方面。 - **灵活性与功能**: Shell不仅集成了大量的命令,还可以通过编写脚本来实现复杂的...

    分享一个入门级可控多线程shell脚本代码

    分享一个入门级可控多线程shell脚本方案 下面张戈博客再分享另一种更容易理解的入门级可控多线程shell脚本方案:任务切割、各个击破。 先来 1 段场景描述: 某日,在鹅厂接到了这个任务,需要在Linux服务器中,对几...

Global site tag (gtag.js) - Google Analytics