`
greemranqq
  • 浏览: 972178 次
  • 性别: 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. 交互式...

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

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

    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 +

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

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

    基于串口屏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 ...

    一个监控LINUX目录和文件变化的Shell脚本分享

    最后,脚本会在日志文件末尾添加一条分割线,并删除临时文件`$TMP_B`和`$TMP_C`,以保持磁盘整洁。 这个脚本监控方案的核心原理是通过比较文件大小的变化来检测文件的增删改操作。由于`du -sb`会返回每个文件的大小...

Global site tag (gtag.js) - Google Analytics