`
greemranqq
  • 浏览: 975479 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

定时分割文件脚本

阅读更多

一、序言

       这里有个任务,通过每天用户的登录日志文件,对固定信息进行切割,然后保存到新的文件,并上传到另外的服务器进行处理。

 

二、日志信息:

    当天的日志文件名:webapp-login.log

    日志主要内容:

 

[INFO ] [16:09:31] LOGIN - 张三(803521136) - pramms_xxxxxxxxx
[INFO ] [16:09:35] LOGIN - 李四(803521136) - pramms_xxxxxxxxx
[INFO ] [16:09:35] LOGIN - ERROR - 王五(803521136) - pramms_xxxxxxxxx
[INFO ] [17:09:31] LOGIN - 张三(803521136) - pramms_xxxxxxxxx

 

 

三、命令执行过程如下:

       1.找到当天文件 :

           cat  /log/webapp-login.log

 

        2.找到含有 LOGIN 并不含有 ERROR 的信息

           grep  "LOGIN" | grep -v "ERROR" 

 

        3.按“ - ” 进行分割,找到获取第二组文字信息,注意加空格

           awk -F ' - ' '{print $2}'

           会得到这样的我字符串:张三(803521136)

 

        4.同理按"(" 分割,获取第一组 字符串

           awk -F '(' '{print $2}'

           得到:张三

 

        5.默认排序

           sort

       

        6.同行统计:排序后,可以连续出现过几次,表示一天登录过几次

           uniq -c

           得到:2 张三 

 

        7. 按出现次数 大 到小 排除,并输出到当前loginInfo 目录文件

            sort -nr >> ./loginInfo/loginfo.info

 

        该命令完整如下:

       

cat /log/webapp-login.log  | grep "LOGIN" | grep -v "ERROR" | awk -F ' - ' '{print $2}' | awk -F '(' '{print $1}' | sort | uniq  -c|sort -nr >> login.info

       文件结果如下:

 

       

 2  张三
 1  李四

 

 

四、我们要定时执行这个脚本,脚本命名为 :createLoginInfo.sh

      1进入文件目录,遍历该文件

       

#!/bin/bash
# 描述: 统计用户登录信息
# 作者:xxx
# 时间:2015-03-05


# 创建个函数
function uplodaLoginInfo(){
      # 进入文件目录
      cd /log
      #遍历文件,这里用ls 可以遍历N个文件,例子只有一个
      for file in 'ls weapp-login.log '
      # 执行
      do
      # 输出文件变量名
      echo $file
      date=`date '+%Y-%m-%d'`
      # 文件拆分
      cat /log/webapp-login.log  | grep "LOGIN" | grep -v "ERROR" | awk -F ' - ' '{print $2}' | awk -F '(' '{print $1}' | sort | uniq  -c|sort -nr >> ./loginInfo/login.info

      # 上传到某个域名下的服务器
      # curl 下面单独写,不需要可以不用
      
    done
    echo "uploadWeb4Log done";
}
# 建一个目录
mkdir -p loginInfo

 

 

   

  五、 shell 模拟表单提交        

    

#命令:
curl 
# 参数文件路径 $file 是上面你的文件变量名
-F "file=@loginInfo/"$file".info" 
# 参数日期
-F "date="$date 
# 参数密码
-F "password=web4" 
# 参数名字
-F "name=admin"
# 参数文件名
-F "filename="$file".info"
# 请求的地址
http://www.xxxx.xxx.getFile

 

 

六、定时任务

     用的基本的crontab -e  打开,基本的cron 表达式的

     假设每分钟执行一次命令:

     * * * * * createLoginInfo.sh

     

 

  小结:

        1.linux 命令不熟悉,如有错误请指出,这里仅仅记录下 基本的

        2.关于文件分割 以及 curl  的强大命令,比较多,下面贴一些我参考的东西

-- awk 命令

http://blog.chinaunix.net/uid-23302288-id-3785105.html

 

-- sort 命令

http://www.2cto.com/os/201304/203309.html

 

-- curl 命令

http://www.aiezu.com/system/linux/linux_curl_syntax.html

 

-- crontab

http://www.jb51.net/LINUXjishu/19905.html

分享到:
评论

相关推荐

    linux定时执行任务脚本

    本文将深入探讨如何创建和管理Linux定时执行任务脚本。 首先,我们需要了解cron服务的工作原理。cron在后台运行,周期性地检查/etc/crontab文件以及用户家目录下的.crontab文件,以查找待执行的任务。任务以特定的...

    文件的分割与合并(包括自动合并)

    例如,可以编写一个脚本,该脚本在分割文件后立即启动合并过程。这样的脚本可以监控特定的文件夹,一旦检测到新生成的分割文件,就自动进行合并。这在批处理或者定时任务中非常有用,提高了效率且降低了出错的可能性...

    linux自动备份文件 并上传到远程服务器 脚本实现

    ### Linux自动备份文件并上传至远程服务器脚本实现 在Linux环境下进行自动化操作可以极大地提高工作效率,特别是对于数据备份及远程传输这样的重复性任务。本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL...

    BAT批处理脚本-文件相关操作-分离路径和文件名.cmd.zip

    批处理脚本在自动化工作流程中具有巨大的潜力,比如定时备份、文件清理、文件移动或重命名等。通过熟练掌握这些基础命令和技巧,我们可以构建更复杂的脚本,实现更精细的文件管理。 在实际使用中,用户需要将“分离...

    logrotate日志切割工具自动化脚本

    本文将详细介绍`logrotate`的使用,包括其工作原理、配置文件结构以及如何编写自动化脚本并将其添加到定时任务中。** ### 一、`logrotate`工作原理 `logrotate`的工作机制是基于时间周期对日志文件进行切割,通常...

    python实现windows下文件备份脚本

    2. 文件路径处理:在脚本中,我们需要处理文件路径,这涉及到字符串拼接和路径的分割。通常需要正确使用斜杠(/)或者反斜杠(\\)来分隔文件夹和文件名。 3. 系统命令执行:Python允许通过os.system()方法调用系统...

    2021最全autojs脚本实例接近三千个实例脚本,史上最强

    4. 定时任务:通过`setInterval`和`setTimeout`来实现定时执行的脚本,比如定时启动应用、发送通知等。 5. 网络请求:利用`http`模块,可以发送HTTP请求获取网络数据,如`http.get(url, callback)`。 6. 交互式...

    Linux下tomcat日志catalina.out按天(/周)分割

    通过这样的脚本和定时任务,我们可以在Linux上的Tomcat环境中有效地管理和分割`catalina.out`日志,便于日后的检索和分析。这不仅可以节省存储空间,还可以帮助我们更好地跟踪和诊断Tomcat服务的运行状况。

    nginx多server日志分割脚本分享

    **Nginx 多Server日志管理与分割脚本详解** 在运维管理和性能监控中,对Web服务器如Nginx的日志进行有效管理和分析至关重要。...通过定时执行这个脚本,可以确保日志数据的整洁性和可读性,同时节约存储空间。

    JenkinsAndroidCI_CD脚本备份.zip

    然后执行脚本遍历目录里面的apk生成一个简单的html,这样测试就可以直接去这个网页里面下载apk包了,压缩包里面具体包含以下几个bat:遍历目录复制文件.bat/遍历目录生成html.bat/定时备份任务脚本.bat;具体需下载下来...

    Linux系统下nginx日志每天定时切割的脚本写法

    现在,你已经成功设置了Nginx日志每天定时切割的脚本。`logrotate`会按照你设定的规则每天执行日志切割,并且通过`postrotate`中的命令确保Nginx继续正常工作。如果需要,还可以根据需求调整logrotate的其他参数,...

    CentOS 7.0下nginx实现每天定时分割日志

    环境说明: ...新建的定时脚本位置/shell/nginx/logs.sh 1.新建脚本并执行 #mkdir /shell/nignx #cd /shell/nginx #vim logs.sh #!/bin/bash base_path='/var/log/nginx' log_path=$(date -d yesterday +

    windows下tomcat的catalina.out按天自动分割

    接下来,我们将逐步介绍如何对`startup.bat`和`catalina.bat`两个脚本文件进行修改,以实现日志文件的自动分割功能。 1. **修改`startup.bat`文件** - 打开`bin/startup.bat`文件。 - 查找并修改`call "%...

    win系统下的tomcat日志按日期切割工具

    然后,我们可以创建一个批处理脚本或者使用任务计划程序,定时运行`cronolog`命令,指定Tomcat的日志输出文件和切割规则。例如,以下是一个简单的cronolog配置: ``` cronolog -T "%Y-%m-%d.txt" "C:\path\to\...

    基于串口屏LUA脚本—自循环播放视频功能配套工程文件

    这通常涉及到解析视频文件、分割帧数据、定时发送到串口屏进行渲染等一系列操作。 "自循环播放视频"功能意味着视频会自动连续播放,当视频播放完毕后会重新开始。实现这一功能需要考虑以下几个关键点: 1. **视频...

    100个shell脚本合集

    2. Linux 系统告警脚本:利用shell脚本可以编写定时任务,定期检查系统状态并发送告警邮件。例如,脚本中可以包含检查磁盘空间、内存使用率、CPU负载等关键指标,当超过预设阈值时,通过mailx发送告警邮件。 3. ...

    自动分割日志一种方法

    批处理文件是一种文本文件,其中包含了要连续执行的一系列DOS命令,这样就可以自动化执行一些重复性的任务,比如定时分割日志文件。 `splitlog.cmd`可能包含如下内容: 1. 使用`for`循环遍历指定的日志目录,如`...

    备份的处理脚本

    此外,它还可以用于分割大型归档文件,方便在不支持大文件的系统或介质上存储和传输。 在编写备份脚本时,一些关键考虑因素包括: 1. **定时任务**:脚本可能与cron(Linux)或Task Scheduler(Windows)集成,以...

    linux关机脚本.zip

    这个“linux关机脚本.zip”压缩包可能包含了一个或者多个用于实现这一功能的脚本文件。下面将详细介绍如何在Linux环境中创建和使用这样的脚本,以及相关的重要知识点。 首先,批量远程关机脚本的基础是SSH(Secure ...

    Unix脚本编程快速入门和概述.pdf

    Here文档提供了一种简单的方法来创建多行文本块,特别适用于脚本中的输入或配置文件。 ```bash #!/bin/bash cat <<EOF > /tmp/myfile.txt This is a line of text. And this is another one. EOF ``` ##### 4.3 ...

Global site tag (gtag.js) - Google Analytics