一、序言
这里有个任务,通过每天用户的登录日志文件,对固定信息进行切割,然后保存到新的文件,并上传到另外的服务器进行处理。
二、日志信息:
当天的日志文件名: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()方法调用系统...
4. 定时任务:通过`setInterval`和`setTimeout`来实现定时执行的脚本,比如定时启动应用、发送通知等。 5. 网络请求:利用`http`模块,可以发送HTTP请求获取网络数据,如`http.get(url, callback)`。 6. 交互式...
通过这样的脚本和定时任务,我们可以在Linux上的Tomcat环境中有效地管理和分割`catalina.out`日志,便于日后的检索和分析。这不仅可以节省存储空间,还可以帮助我们更好地跟踪和诊断Tomcat服务的运行状况。
**Nginx 多Server日志管理与分割脚本详解** 在运维管理和性能监控中,对Web服务器如Nginx的日志进行有效管理和分析至关重要。...通过定时执行这个脚本,可以确保日志数据的整洁性和可读性,同时节约存储空间。
然后执行脚本遍历目录里面的apk生成一个简单的html,这样测试就可以直接去这个网页里面下载apk包了,压缩包里面具体包含以下几个bat:遍历目录复制文件.bat/遍历目录生成html.bat/定时备份任务脚本.bat;具体需下载下来...
现在,你已经成功设置了Nginx日志每天定时切割的脚本。`logrotate`会按照你设定的规则每天执行日志切割,并且通过`postrotate`中的命令确保Nginx继续正常工作。如果需要,还可以根据需求调整logrotate的其他参数,...
环境说明: ...新建的定时脚本位置/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 ...