• 一、功能
  • 二、效果图
    • 0.刚运行脚本需要输入日志文件名或绝对路径
    • 1.可查看不同IP的访问次数
    • 2.查看某一IP访问了哪些页面,下面还可以将该日志保存到文件中,按y保存,**IP一定要写选项1里面有的IP**
    • 3.查看当天共有多少个IP访问
    • 4.筛选出具有关键词的日志
  • 三、代码
  • 四、运行脚本
    • 方法一
    • 方法二
    • 方法三

主要用于平时web日志的安全检查,护网还是直接看设备比较好

一、功能

  1. 列出当天不同IP的访问次数
  2. 查看某一个IP访问了哪些页面
  3. 查看当天有多少个IP访问
  4. 根据关键词筛选日志内容

二、效果图

0.刚运行脚本需要输入日志文件名或绝对路径


输入错误需要重新输入

1.可查看不同IP的访问次数

2.查看某一IP访问了哪些页面,下面还可以将该日志保存到文件中,按y保存,IP一定要写选项1里面有的IP



3.查看当天共有多少个IP访问

4.筛选出具有关键词的日志

三、代码

#!/bin/bash# 字体颜色
Green_font_prefix="\033[32m"
Red_font_prefix="\033[31m"
Font_color_suffix="\033[0m"# 分割线
line(){for i in {1..100};doif [ $i -ne 100 ];thenecho -ne "-"elseecho -e "-"fidone
}# 选项一
diffip(){linecut -d- -f 1 "$logfile"|sort| uniq -c | sort -rn
}# 选项二
oneip(){while true;doread -rp "请输入需要分析的IP:" iplineif [ "$(grep ^$ip $logfile |wc -l)" -ne 0 ];thengrep ^$ip $logfile| awk '{print $4."]",$1,$7,$9}'breakelseecho -e "${Red_font_prefix}未找到该IP!请重新输入!!${Font_color_suffix}"linecontinuefidone
}# 保存文件
savefile(){read -rp "是否保存到文件中(y/n):" chooseif [ $choose == "y" ] || [ $choose == "Y" ];thengrep ^$ip $logfile| awk '{print $4."]",$1,$7,$9}' > "$ip.txt"echo -e "已保存到$ip.txt中"fi
}# 选项三
howmanyip(){lineawk '{print $1}' $logfile|sort|uniq|wc -l
}# 选项四
keyword(){while true;dolineread -rp "请输入关键词(q为退出):" keyif [ $key == "q" ];thenbreakfimore "$logfile" | grep "$key"done
}while true;doread -rp "请输入需要分析的日志:" logfilefind "$logfile" &>/dev/nullif [ $? -ne 0 ];thenecho -e "${Red_font_prefix}未找到日志,请输入文件名或绝对路径!!(家目录要写全称而不是~)${Font_color_suffix}"lineelsebreakfi
done
# *****************************************
# ************** 主  面  板****************
# *****************************************
line
while true; do
echo -e "web中间件日志分析脚本 ${Red_font_prefix}[v1.0]${Font_color_suffix}${Green_font_prefix}1.${Font_color_suffix} 列出当天不同IP的访问次数
${Green_font_prefix}2.${Font_color_suffix} 查看某一个IP访问了哪些页面
${Green_font_prefix}3.${Font_color_suffix} 查看当天有多少个IP访问
${Green_font_prefix}4.${Font_color_suffix} 根据关键词筛选日志内容
${Green_font_prefix}5.${Font_color_suffix} 退出脚本
"
read -r -p "请输入数字 [1-5]:" numif [ "$num" -eq "1" ];thendiffipelif [ "$num" -eq "2" ];thenoneipsavefileelif [ "$num" -eq "3" ];thenhowmanyipelif [ "$num" -eq "4" ];thenkeywordelif [ "$num" -eq "5" ];thenecho ""echo -e "${Green_font_prefix}**************************************************** 谢谢您的使用,再见*****************************************************${Font_color_suffix}"exit 0elseecho -e "${Red_font_prefix}请输入正确数字!!${Font_color_suffix}"linecontinue
fi
line
done

四、运行脚本

方法一

sh 脚本名

方法二

bash 脚本名

方法三

chmod 777 脚本名
./脚本名   (这个要在脚本同一个目录才可以)

有的需求没有可以自己在代码上加,挺简单的

web中间件日志分析脚本1.0(shell脚本)相关推荐

  1. 光年SEO日志分析系统2.0

    张国平老师的光年SEO日志分析系统今天更新了,这里第一时间放出下载地址和国平老师写的详解<光年SEO日志分析系统2.0>. 下载地址: <光年SEO日志分析系统>的介绍:htt ...

  2. linux 脚本 获取pid,Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将she ...

  3. linux脚本简介,Linux Shell脚本简介

    Shell 诞生于 Unix,是与 Unix/Linux 交互的工具,单独地学习 Shell 是没有意义的,请先参考Unix/Linux入门教程,了解 Unix/Lunix 基础. 近几年来,Shel ...

  4. Tcl/Tk脚本中执行Shell脚本

    在Tcl/Tk脚本中执行Shell命令 set n 0 set x "*"while {$n < 10} {puts $xset x "$x"*set n ...

  5. 【跟晓月学shell脚本】掌握shell脚本变量原理及概念

    前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...

  6. linux脚本编写规则,shell脚本编写守则

    现在centos7中使用的是bash软件,通过以下命令可以查看bash版本: [root@localhost ~]# cat /etc/redhat-release #查看系统的版本 CentOS L ...

  7. 什么是脚本语言,shell脚本又是什么?

    脚本语言就是解释型语言: 脚本语言(Script language,scripting language,scripting programming language)是为了缩短传统的编写-编译-链接 ...

  8. 【跟晓月学shell脚本】掌握shell脚本变量实战案例

    前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...

  9. python分析服务器日志_python实现web服务器日志分析脚本

    python日志分析脚本 用python可以实现大日志文件的分析,比如查到sql注入语句,然后看到IP,就可以改下脚本,用IP为特征取出日志,分析入侵过程. python比较shell脚本的优点是速度 ...

最新文章

  1. Ubuntu下编译并运行C++代码
  2. 来自95后的天池中间件大赛总结
  3. Maven内置属性及使用
  4. NHibernate 做个小项目来试一下吧 一
  5. 创建字节跳动之前,张一鸣读过哪些硬核技术书?
  6. [Linux] Ubuntu下的文件比较工具--meld
  7. 解决eclipse报PermGen space内存溢出异常的问题
  8. DOTNET零碎要点---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库
  9. 微信小程序nginx+uwsgi+django配置的域名问题
  10. 大数据分析的作用有哪些
  11. Arrays和比较器
  12. 跟对人,走对路,做对事!
  13. AD画PCB时,如何自动删除之前的连线
  14. Vuecli 城市三级联动的使用
  15. Kaggle--房价预测
  16. 搭建私人网盘(可离线下载、在线播放)
  17. C#中如何将uint16转为int16
  18. 晶体三极管的主要参数
  19. 数据sqlite 矢量切片_矢量切片(Vector tile)
  20. 将中文转换成URL编码

热门文章

  1. 仿抖音短视频APP源码html网页图片和文字水平居中垂直居中显示
  2. H5 video标签封面
  3. kafka 消息分发机制、分区和副本机制
  4. Error: Failed to download resource “node_bottle_manifest“ 错误解决
  5. 高被引论文有什么特征?
  6. 基于pytorch的Swim Transformer代码实现与讲解
  7. selenium+lxml爬取京东商品信息
  8. Jenkins 中文设置
  9. Unity 调试XLua.dll
  10. 关于孩子的教育,心理健康教育值得我们重视