linux文件截取日志,linux下对日志文件的截取,日志文件需要是有序的

news/2024/7/5 11:01:22

#!/bin/bash

echo 示例用法1:./log_truncate.sh 18/Sep/2017 20/Sep/2017 access_zl.log"(截取指定日期之间的日志记录,日期请不要跨月)"

echo 示例用法2:./log_truncate.sh 18/Sep/2017 10:13:06 18/Sep/2017 14:15:08 access_zl.log"(截取指定时间内的日志记录,日期请不要跨月)"

count=$# #参数个数

first_day=`echo $1|cut -d / -f 1`

var=$1

month=${var#*/}

#echo $count

#echo $first_day

#echo $second_day

#echo $month

rm logtruncatebytime.text -rf

if [ $count -eq 3 ];then

second_day=`echo $2|cut -d / -f 1`

int=$first_day

#echo $int

while(( $int<=$second_day ))

do

str=$int"/"$month

#echo $str

cat $3|grep $str>>"logtruncatebytime.text"

let "int++"

done

elif [ $count -eq 5 ];then

begin_str=$1":"$2

#echo $begin_str

end_str=$3":"$4

#echo $end_str

begin_line=$(cat $5|grep -n $begin_str|awk -F ':' '{print $1}'|head -n1)

#echo beginstr=$begin_str begin_line=$begin_line

end_line=$(cat $5|grep -n $end_str|awk -F ':' '{print $1}'|tail -n1)

#echo end_str=$end_str end_line=$end_line

if [ -z "$begin_line" ];then

echo "你输入的开始时间不存在,请重新输入!"

exit

elif [ -z "$end_line" ];then

echo "输入的结束时间不存在,请重新输入!"

exit

fi

cat $5 |head -n $end_line|tail -n +$begin_line >>"logtruncatebytime.text"

else

echo "输入格式错误,请重新按照示例用法输入!"

exit

fi

zip -r logtruncatebytime.zip logtruncatebytime.text

if [ -f "./logtruncatebytime.zip" ];then

echo $(cat logtruncatebytime.text|wc -l) 条记录已经写入到logtruncatebytime.zip文件中......

rm logtruncatebytime.text -rf

else

echo "程序执行失败,请重新检查输入再执行......"

fi


http://www.niftyadmin.cn/n/3170179.html

相关文章

android方法注解 点击,Android优雅地处理按钮重复点击的几种方法

App中&#xff0c;有很大一部分场景是点击按钮&#xff0c;向服务端提交数据&#xff0c;由于网络请求需要时间&#xff0c;用户很可能会多次点击&#xff0c;造成数据重复提交&#xff0c;造成各种莫名其妙的问题。因此&#xff0c;防止按钮多次点击&#xff0c;是Android开发…

linux终端执行二进制程序,利用ubuntu将.cpp生成二进制的可执行文件,然后利用.bat(脚本)编写命令,将可执行文件在android机上运行...

首先ubuntu上有混合编译器脚本make.sh,其内容如下&#xff1a;(myvir是我的虚拟机的名字)/home/myvir/my_ndk_toolchain/bin/arm-linux-androideabi-g \-g -o test test.cpp \-I /home/myvir/my_ndk_toolchain/include/c/4.9/arm-linux-androidideabi/armv7-a \-I ./include \l…

linux执行cp占内存还是cpu,Linux进程记帐 – ‘cp’和’cpu’字段之间的区别?

让我用一个例子来帮助解释上面的结果显示&#xff1a;第一&#xff1a;我创建了一个bash脚本,我作为用户patrickr运行,这意味着要在系统上施加足够的负载才能引人注目.#!/bin/bash#this file is named loop_script.shfor i in {1..5000}doecho "Welcome $i times"don…

android 7.0查看根目录,从零开始搭建一个主流项目框架(八)—— 私有目录被限制访问(Android 7.0)...

个人博客&#xff1a;haichenyi.com。感谢关注我这里只说我关心的问题&#xff0c;并不是说Android 7.0只增加了一个“私有目录被限制访问”&#xff0c;当然还有其他的变化。android 7.0的新特性中&#xff0c;对程序员开发造成最直接的变化就是FileUriExposedException异常&a…

linux中本机无法访问数据库,linux中mysql数据库外部无法访问

今天在虚拟机CentOS系统中安装了mysql数据库&#xff0c;可是安装成功后外部却无法访问。找了好长时间才找到是由于防火墙设置造成的&#xff0c;现将解决过程写出来分享一下。首先&#xff0c;检查了mysql的权限&#xff0c;已经设置过了。且服务也已经启动&#xff0c;在loca…

android颜色过滤,android – 将颜色过滤器添加到Drawable使用相...

我有一个屏幕,其中多个按钮使用相同的背景Drawable.我有可重用的代码,我在各种项目中使用它来添加一个OnTouch监听器,在触摸按钮时添加灰色滤色器.这通常可以正常工作,但在这种情况下,当按下任何按钮时,所有按钮都会着色.Note: Each unique resource in your project can maint…

linux文件自动切割,linux上大文件切割成小文件传输

Atitit&period;病毒木马的快速扩散机制原理nio&&num;160&semi;内存映射MappedByteBufferAtitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer 1. Java NIO(New Input/Output)1 1.1. 变更通知(因为每个事件都需要一个监听者 ...学习mongo系列(八)密…

android view滑动检查,Android ViewPager检测滑动超出范围

在我的Android应用程序中,我正在使用viewpager进行图像滑动.我的要求是,如果用户从第一页和最后一页滑出,则该活动应完成.我已将此值设为example.但是在我的活动中未调用方法setOnSwipeOutListener.这是我的自定义视图寻呼机类&#xff1a;public class CustomViewPager extend…