• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > Shell日志分析常用命令和例子

Shell日志分析常用命令和例子

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了shell 日志,shell 输出日志,shell 查看日志,shell 打印日志,shell脚本输出日志等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

学会用shell分析日志只要一上午!!!

很多地方分享了日志分析的shell脚本,但是基本没说每个命令符的具体含义,学习成本还是很高,在这里总结下,方便大家快速入门。

1、在Windows下的用户要使用shell命令符的话请先安装cygwin,安装方法自行Google(搜技术问题请使用google,百度搜不到活该)

2、下面粗略介绍下SEO日志分析常用的命令符用法,需要详细了解每个命令符请使用Google。

less 文件名 查看文件内容 按“q” 退出

cat 文件名 打开文件,可以多次打开几个文件 | cat 1.log 2.log |cat *.cat
grep -参数 文件名
-i 不区分大小写
-v 显示不符合条件的所有行
-c 显示符合条件的所有行数(符合条件的数量)

egrep 属于grep的升级版,在正则这一块的支持更完善,使用正则的时候建议使用egrep

head -2 文件名 显示2行
head -100 文件名 | tail -10 >>a.log 提取文件第91-100行数据

wc -参数 文件名 统计文本大小,字符多少,行数
-c 统计文本字节数
-m 统计文本字符数
-l 统计文本有多少行

sort – 参数 文件名 对文件进行排序
-n 对文件按照数字排序
-r 反向排序

uniq -参数 文件名 对文件去重,去重前需要使用排序

sort
-c 显示数据重复的次数

split -参数 文件名 对文件进行切割
-100 (每100行切割成一个文件)
-C 25m/b/k (每25兆/字节/K 分割成一个文件)

| 管道,把上一条命令的结果传输给下一条命令

“>” 和“>> ” 重定向写入文件中 “>”相当于“w”清空并写入 “>>”相当于“a” 追加进文件

 awk -F ‘分割符'  Pattern {action} 文件名 使用指定的字符对每一行数据进行分段,默认是空格(网站日志就是空格分开)
-F后面跟的是分隔符
pattern 就是action执行的条件,这里可以使用正则表达式
$n 即时第几段数据 $0表示整行数据
NF表示当前记录的字段数
$NF 表示最后一个字段
BEGIN和END,这两者都可用于pattern中,提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作

bash shell.sh 运行shell.sh脚本

dos2unix xxoo.sh 将“\r\n”转换成“\n” Windows——>linux (由于Windows和Linux下的换行符不同,所以我们在Windows下面下的代码需要使用dos2unix 转换成Linux下的换行符,否则运行shell脚本会报错)

unix2dos xxoo.sh 将“\n”转换成“\r\n” linux——>Windows
rm xx.txt 删除xx.txt文件

3、一些简单的命令符介绍到这里,需要了解shell,建议大家查看相关的书籍.

下面我们开始使用shell分析日志

1、切割百度的抓取数据(将文件切割出来对专门的爬虫数据进行处理能提高效率)
cat log.log |grep -i ‘baiduspider' >baidu.log
</div>
2、网站状态码个数查询 
awk ‘{print $9}' baidu.log|sort|uniq -c|sort -nr
</div>
3、百度总抓取量
wc -l baidu.log
</div>
4、百度不重复抓取量 
awk ‘{print $7}' baidu.log|sort|uniq|wc -l
</div>
5、百度平均每次抓取的数据大小(结果是KB)
awk ‘{print $10}' baidu.log|awk ‘BEGIN{a=0}{a+=$1}END{ print a/NR/1024}'
</div>
6、首页抓取量
awk ‘$7~/\.com\/$/' baidu.log|wc -l
</div>
7、某目录抓取量
grep ‘/news/' baidu.log|wc -l
</div>
8、抓取最多的10个页面
awk ‘{print $7}' baidu.log|sort|uniq -c|sort -nr|head -10
</div>
9、找出抓取的404错误页面
awk ‘$9~ /^404$/ {print $7}' baidu.log|sort|uniq|sort -nr
</div>
10、找出抓取了多少js文件和文件抓取的次数
awk ‘$7~ /.js$/ {print $7}' baidu.log|sort|uniq -c |sort -nr
</div>

</div>

您可能想查找下面的文章:

  • shell版Nginx日志蜘蛛爬取查看脚本
  • Shell日志分析常用命令和例子

相关文章

  • Shell 管道及执行顺序分析
  • Linux命令每天必学(55)之traceroute命令
  • shell脚本学习指南[一](Arnold Robbins & Nelson H.F. Beebe著)
  • 设置Linux系统的空闲等待时间TMOUT的方法
  • shell监控脚本 准备工作分享
  • Linux中获取某个进程的系统调用以及参数(故障排查案例)
  • Shell逐行读取文件的4种方法
  • Shell编程 Bash引号的那点事
  • linux shell 管道命令(pipe)使用及与shell重定向区别
  • php在linux中可能用到的命令(推荐)

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • awk中让人郁闷的system()函数
    • Linux shell编程中IO和条件及循环处理的细节问题讨论
    • 根据公司需求写的一个linux 巡检小脚本
    • Linux 中 CURL常用命令详解
    • Linux Shell函数返回值
    • Shell中函数返回值超出问题
    • 一个shell写的ping函数
    • Git 常用命令整理
    • 1 秒内启动Linux的方法
    • Linux下使用shell脚本自动执行脚本文件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有