`
greemranqq
  • 浏览: 966280 次
  • 性别: 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

分享到:
评论

相关推荐

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

    说明:只需要定义日志文件目录,便可一键执行日志切割脚本,并自动添加到定时任务

    JenkinsAndroidCI_CD脚本备份.zip

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

    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系统下nginx日志每天定时切割的脚本写法

    本篇文章给大家分享使用Linux系统自带的命令logrotate对Nginx日志进行切割的方法,对nginx日志切割脚本感兴趣的朋友一起学习吧

    实现自动定期删除Nginx日志的方法

    系统日志是一个很重要的东西但同时如果我们不定时清除空间就会给日志占完了,下面我来介绍定期删除日志实现方法,各位同学可参考。...不过使用脚本的时候需要将Nginx的日志文件进行自动分割,否则会删除正在

    nginx日志按天生成和定期删除日志的方法

    问题:nginx会按照nginx.conf的配置生成access.log和...1.方法一:创建分割日志文件的脚本,添加定时任务 1.1写脚本:重命名日志文件、重启nginx 例如存放路径:/usr/local/nginx/sbin/cut_nginx_logs.sh,按天分割具体

    linux vsftpd日志切分工具

    所以自己写切分脚本,主要原理,从源文件切分出前一天日期的数据到备份文件,然后抹除源日志文件前一天数据。使用方法 一般的都是结合crond 使用,使用定时任务来切分日志。日志需要带有三个参数 如下,为定时任务...

    python实时分析日志的一个小脚本分享

    脚本主要运用了文件的seek和tell函数,原理如下:  1.加入crontab,每5分钟执行一次  2.只分析从上次读取日志文件的结束位置到这次读取文件时的末尾位置之间的日志,出结果 可以使用zabbix_sender把结果发送到...

    Logrotate实现Catalina.out日志每俩小时切割示例

    一.Logrotate工具介绍 Logrotate是一个日志文件管理工具,它是Linux默认自带的一个日志...crontab会每天定时执行/etc/cron.daily目录下的脚本,而这个目录下有个文件叫logrotate。 [root@test01 ~]# cat /etc/cron.da

    1345个易语言模块

    分割文件模块.ec 分割无逢文本模块.ec 分辨 率.ec 列宽自动调整.ec 列表框增强操作模块.ec 列表框打印预览1.0.ec 列表框打印预览1[1].0.ec 列 表框打印预览2.2.ec 列表框模块.ec 列表框项目拖动.ec 创建任意目录 1.0...

    Linux指令一周通 (技术图书大系).azw3

    1.16 csplit指令:分割文件 1.17 cut指令:剪切文件 1.18 diff指令:生成差异信息 1.19 diffstat指令:diff结果的统计信息 1.20 dump指令:文件系统备份 1.21 file指令:辨识文件类型 1.22 find指令:查找目录或者...

    czipdata:适用于Python的纯真IP数据库规范及同步

    生成sql脚本文件及gz压缩文档,请先安装gzip并添加至系统变量; Windows使用BAT文件实现数据库的自动更新和推送;结合计划任务可实现windows的定时更新。数据文件文件内容czipdata_version.bin本地数据文件版本记录...

    tengge py for s60编程教程

    8.3文件路径的分割 8.4模拟按键 8.5按键捕获 8.6%格式化输出 8.7取得时间日期 8.8其他技术介绍 8.9.后台信息提示 9.0.字体和模式字体 9.1.文本界面其他函数 9.2.焦点控制 9.3.设定程序风格 9.4.从系统打开文件 9.5....

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例158 文件分割器 实例159 帮助文件 实例160 用WinRar压缩和解压文件 实例161 判断文件是否被改动 第6章 操作系统与Windows相关程序 6.1 启动相关设置 实例162 进入Windows XP前发出警告 实例163 实现...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例158 文件分割器 实例159 帮助文件 实例160 用WinRar压缩和解压文件 实例161 判断文件是否被改动 第6章 操作系统与Windows相关程序 6.1 启动相关设置 实例162 进入Windows XP前发出警告 实例163 实现...

    vc++ 应用源码包_1

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_2

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_6

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_5

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_3

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

Global site tag (gtag.js) - Google Analytics