一、序言
这里有个任务,通过每天用户的登录日志文件,对固定信息进行切割,然后保存到新的文件,并上传到另外的服务器进行处理。
二、日志信息:
当天的日志文件名: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定时执行任务脚本。 首先,我们需要了解cron服务的工作原理。cron在后台运行,周期性地检查/etc/crontab文件以及用户家目录下的.crontab文件,以查找待执行的任务。任务以特定的...
例如,可以编写一个脚本,该脚本在分割文件后立即启动合并过程。这样的脚本可以监控特定的文件夹,一旦检测到新生成的分割文件,就自动进行合并。这在批处理或者定时任务中非常有用,提高了效率且降低了出错的可能性...
### Linux自动备份文件并上传至远程服务器脚本实现 在Linux环境下进行自动化操作可以极大地提高工作效率,特别是对于数据备份及远程传输这样的重复性任务。本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL...
批处理脚本在自动化工作流程中具有巨大的潜力,比如定时备份、文件清理、文件移动或重命名等。通过熟练掌握这些基础命令和技巧,我们可以构建更复杂的脚本,实现更精细的文件管理。 在实际使用中,用户需要将“分离...
本文将详细介绍`logrotate`的使用,包括其工作原理、配置文件结构以及如何编写自动化脚本并将其添加到定时任务中。** ### 一、`logrotate`工作原理 `logrotate`的工作机制是基于时间周期对日志文件进行切割,通常...
2. 文件路径处理:在脚本中,我们需要处理文件路径,这涉及到字符串拼接和路径的分割。通常需要正确使用斜杠(/)或者反斜杠(\\)来分隔文件夹和文件名。 3. 系统命令执行:Python允许通过os.system()方法调用系统...
通过这样的脚本和定时任务,我们可以在Linux上的Tomcat环境中有效地管理和分割`catalina.out`日志,便于日后的检索和分析。这不仅可以节省存储空间,还可以帮助我们更好地跟踪和诊断Tomcat服务的运行状况。
4. 定时任务:通过`setInterval`和`setTimeout`来实现定时执行的脚本,比如定时启动应用、发送通知等。 5. 网络请求:利用`http`模块,可以发送HTTP请求获取网络数据,如`http.get(url, callback)`。 6. 交互式...
**Nginx 多Server日志管理与分割脚本详解** 在运维管理和性能监控中,对Web服务器如Nginx的日志进行有效管理和分析至关重要。...通过定时执行这个脚本,可以确保日志数据的整洁性和可读性,同时节约存储空间。
然后执行脚本遍历目录里面的apk生成一个简单的html,这样测试就可以直接去这个网页里面下载apk包了,压缩包里面具体包含以下几个bat:遍历目录复制文件.bat/遍历目录生成html.bat/定时备份任务脚本.bat;具体需下载下来...
环境说明: ...新建的定时脚本位置/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 +
接下来,我们将逐步介绍如何对`startup.bat`和`catalina.bat`两个脚本文件进行修改,以实现日志文件的自动分割功能。 1. **修改`startup.bat`文件** - 打开`bin/startup.bat`文件。 - 查找并修改`call "%...
然后,我们可以创建一个批处理脚本或者使用任务计划程序,定时运行`cronolog`命令,指定Tomcat的日志输出文件和切割规则。例如,以下是一个简单的cronolog配置: ``` cronolog -T "%Y-%m-%d.txt" "C:\path\to\...
这通常涉及到解析视频文件、分割帧数据、定时发送到串口屏进行渲染等一系列操作。 "自循环播放视频"功能意味着视频会自动连续播放,当视频播放完毕后会重新开始。实现这一功能需要考虑以下几个关键点: 1. **视频...
2. Linux 系统告警脚本:利用shell脚本可以编写定时任务,定期检查系统状态并发送告警邮件。例如,脚本中可以包含检查磁盘空间、内存使用率、CPU负载等关键指标,当超过预设阈值时,通过mailx发送告警邮件。 3. ...
批处理文件是一种文本文件,其中包含了要连续执行的一系列DOS命令,这样就可以自动化执行一些重复性的任务,比如定时分割日志文件。 `splitlog.cmd`可能包含如下内容: 1. 使用`for`循环遍历指定的日志目录,如`...
此外,它还可以用于分割大型归档文件,方便在不支持大文件的系统或介质上存储和传输。 在编写备份脚本时,一些关键考虑因素包括: 1. **定时任务**:脚本可能与cron(Linux)或Task Scheduler(Windows)集成,以...
这个“linux关机脚本.zip”压缩包可能包含了一个或者多个用于实现这一功能的脚本文件。下面将详细介绍如何在Linux环境中创建和使用这样的脚本,以及相关的重要知识点。 首先,批量远程关机脚本的基础是SSH(Secure ...
Here文档提供了一种简单的方法来创建多行文本块,特别适用于脚本中的输入或配置文件。 ```bash #!/bin/bash cat <<EOF > /tmp/myfile.txt This is a line of text. And this is another one. EOF ``` ##### 4.3 ...
最后,脚本会在日志文件末尾添加一条分割线,并删除临时文件`$TMP_B`和`$TMP_C`,以保持磁盘整洁。 这个脚本监控方案的核心原理是通过比较文件大小的变化来检测文件的增删改操作。由于`du -sb`会返回每个文件的大小...