shell命令查看日志,shell实时输出日志,Shell常用服务器日志分析命令总结

shell命令查看日志,shell实时输出日志,Shell常用服务器日志分析命令总结

有时我们需要分析我们的网站服务器日志,以查看网站的访问量。让我们看看有没有人故意破坏!所以收集整理一些服务器日志分析命令,可以尝试一下。

:

目录

1.检查有多少ip访问。2.检查某个页面被访问了多少次。3.检查每个IP访问了多少页面。4.将每个IP访问的页面数从小到大排序。5.检查某个IP访问过哪些页面。6.删除搜索引擎统计的页面。7.查看2015年8月16日14: 00这一小时有多少IP访问。8.检查前十个IP地址。访问的前10个文件或页面10、按子域名的访问次数11、列出传输大小最大的几个文件12、列出输出大于200000字节(约200kb)的页面以及对应的页面出现次数13。如果日志的最后一列记录了页面文件传输时间,则向客户端列出了最耗时的页面14、最耗时的页面(超过60秒的页面)以及对应的页面出现次数15、传输时间超过30秒的文件16、当前服务器运行的每个进程的数量、逆序17、当前apache的并发访问次数18、 可以通过使用以下参数查看的数据19,每个ip的连接数和每个状态的总连接数20,以及其他集合。

1、查看有多少个IP访问

awk“{ print $ 1 }”log _ file | sort | uniq | WC-l

2、查看某一个页面被访问的次数

grep'/index.php'log_file|wc-l

3、查看每一个IP访问了多少个页面

awk'{ S[$1]}END{for(ainS)printa,S[a]}'log_filelog.txt

Sort-n-t''-k2log.txt用Sort进一步排序

4、将每个IP访问的页面数进行从小到大排序

awk ' { S[$ 1]} END { for(ainS)printS[a],a}'log_file|sort-n

5、查看某一个IP访问了哪些页面

grep^111.111.111.111log_file|awk'{print$1,$7}'

6、去掉搜索引擎统计的页面

awk'{print$12,$1}'log_file|grep^'mozilla|awk'{print$2}'|sort|uniq|wc-l

7、查看2015年8月16日14时这一个小时内有多少IP访问

awk“{ print $ 4,$ 1 }”log _ file | grep 16/Aug/2015:14 | awk“{ print $ 2 }”| sort | uniq | WC-l

8、查看访问前十个ip地址

awk“{ print $ 1 }”| sort | uniq-c | sort-NR | head-10 access _ log

Uniq -c相当于把统计数据分组,把统计数据放在最前面。

cataccess . log | awk“{ print $ 1 }”| sort | uniq-c | sort-NR | head-10

cataccess . log | awk ' { counts[$(11)]=1 };END { for(URL incounts)print counts[URL],url}

9、访问次数最多的10个文件或页面

catlog _ file | awk“{ print $ 11 }”| sort | uniq-c | sort-NR | head-10

catlog _ file | awk“{ print $ 11 }”| sort | uniq-c | sort-NR | head-20

awk“{ print $ 1 }”log _ file | sort-n-r | uniq-c | sort-n-r | head-20

访问量最大的20个ip

10、通过子域名访问次数

根据referer的说法,略有不准确。

cataccess . log | awk“{ print $ 11 }”| sed-e ' s/http:\/\//'-e ' s/\/。*//' | sort | uniq-c | sort-rn | head-20

11、列出传输大小最大的几个文件

catwww.access.log|awk'($7~/\。PHP/){ print $ 10 ' ' $ 1 ' ' $ 4 ' ' $ 7 } ' | sort-NR | head-100

12、列出输出大于200000byte(约200kb)的页面以及对应页面发生次数

cat www . access . log | awk '($ 10200000 $ 7 ~/\。PHP/){ print $ 7 } ' | sort-n | uniq-c | sort-NR | head-100

13、如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的页面

catwww.access.log|awk'($7~/\。PHP/){ print $ NF ' ' $ 1 ' ' $ 4 ' ' $ 7 } ' | sort-NR | head-100

14、列出最最耗时的页面(超过60秒的)的以及对应页面发生次数

cat www . access . log | awk '($ NF60 $ 7 ~/\。PHP/){ print $ 7 } ' | sort-n | uniq-c | sort-NR | head-100

15、列出传输时间超过 30 秒的文件

cat www . access . log | awk '($ NF30){ print $ 7 } ' | sort-n | uniq-c | sort-NR | head-20

16、列出当前服务器每一进程运行的数量,倒序排列

PS-ef | awk-F ' ' { print $ 8 ' ' $ 9 } ' | sort | uniq-c | sort-NR | head-20

17、查看apache当前并发访问数

比较httpd.conf中MaxClients的数量差异

netstat-an | grepestablisted | WC-l

18、可以使用如下参数查看数据

ps-ef|grephttpd|wc-l

1388

统计httpd进程的数量。即使一个请求也会启动一个进程,这个进程将在Apache服务器中使用。

表示Apache可以处理1388个并发请求,这个值可以由Apache根据负载情况自动调整。

netstat-nat|grep-i'80'|wc-l

4341

Netstat -an打印系统当前的网络链接状态,grep-I“80”用于提取与80端口相关的连接,wc -l统计连接数。

返回的最终数字是所有80个端口的当前请求总数。

netstat-na | grepestablisted | WC-l

376

Netstat -an将打印系统当前的网络链接状态,grep ESTABLISHED将提取已建立连接的信息。然后wc -l统计

最终返回的数字是目前所有80个端口建立的连接总数。

netstat-NAT | | grepestablisted | WC

您可以查看所有已建立连接的详细记录。

19、输出每个ip的连接数,以及总的各个状态的连接数

netstat-n|awk'/^tcp/{n=split($(nf-1),array,':');if(n=2)S[array[(1)]];else S[array[(4)]];s[$ NF];n } END { for(ainS){ printf(' %-20s % S \ n ',a,S[a]);I}printf('%-20s%s\n ',' TOTAL_IP ',I);for(ains)printf('%-20s%s\n ',a,s[a]);printf('%-20s%s\n ',' TOTAL_LINK ',N);}'

20、其他的收集

分析日志文件下 2012-05-04 访问页面最高 的前20个 URL 并排序

地下通道。log | grep ' 04/May/2012 ' | awk ' { print $ 11 } ' | sort | uniq-c | sort-NR | head-20

查询受访问页面的URL地址中 含有 www.abc.com 网址的 IP 地址

' cataccess _ log | awk '($ 11 ~/\ www .ABC。{ print $ 1 } ' | sort | uniq-c | sort-NR

获取访问最高的10个IP地址 同时也可以按时间来查询

猫线哇-访问。log | awk " { print $ 1 } " | sort | uniq-c | sort-NR | head-10

时间段查询日志时间段的情况

catlog _ file | egrep ' 15/Aug/2015 | 16/Aug/2015 ' | awk ' { print $ 1 } ' | sort | uniq-c | sort-NR | head-10

分析 2015/8/15 到 2015/8/16 访问”/index.php?g=Memberm=Publica=sendValidCode”的IP倒序排列

卡特彼勒log _ file | egrep ' 15/Aug/2015 | 16/Aug/2015 ' | awk ' { if($ 7=='/index。PHP?g=member m=Publica=send valid code ')print $ 1,$7}'|sort|uniq-c|sort-nr

($7 ~ /.php/) $7里面包含.php的就输出,本句的意思是最耗时的一百个PHP页面

catlog_file|awk'($7~/\ .PHP/){ print $ NF ' ' $ 1 ' ' $ 4 ' ' $ 7 } ' | sort-NR | head-100

列出最最耗时的页面(超过60秒的)的以及对应页面发生次数

cataccess.log|awk'($NF60$7~/\ .PHP/){ print $ 7 } ' | sort-n | uniq-c | sort-NR | head-100

统计网站流量(G)

地下通道。log | awk " { sum=$ 10 } END { printsum/1024/1024/1024 } "

统计404的连接

awk '($ 9 ~/404/)'访问。log | awk“{ print $ 9,$ 7 }”|排序

统计http status

地下通道。log | awk“{ counts[$(9)]=1 };END{for(codeincounts)printcode,counts[code]} '

地下通道。log | awk " { print $ 9 } " | sort | uniq-c | sort-rn

每秒并发

watch ' awk ' { if($ 9 ~/200 | 30 | 404/)COUNT[$ 4]} END { for(ain COUNT)printa,COUNT[a]} ' log _ file | sort-k2-NR | head-n10 '

带宽统计

cata缓存。log | awk " { if($ 7 ~/GET/)count } END { print ' client _ request=' count } "

找出某天访问次数最多的10个IP

cat/tmp/access。log | grep ' 20/Mar/2011 ' | awk ' { print $ 3 } ' | sort | uniq-c | sort-NR | head

当天ip连接数最高的ip都在干些什么

地下通道。日志| grep ' 10。0 .21 .17 ' | awk ' { print $ 8 } ' | sort | uniq-c | sort-NR | head-n10

小时单位里ip连接数最多的10个时段

awk-vFS='[:]''{gsub('-.*','',$1);num[$ 2 ' ' $ 1]} END { for(iin num)printi,num[I]} ' log _ file | sort-n-k3-r | head-10

找出访问次数最多的几个分钟

awk“{ print $ 1 }”访问。log | grep ' 20/Mar/2011 ' | cut-C14-18 | sort | uniq-c | sort-NR | head

取5分钟日志

if [ $DATE_MINUTE!=$ DATE _ END _ MINUTE];然后#则判断开始时间戳与结束时间戳是否相等

START _ LINE=sed-n '/$ DATE _ MINUTE/=' $ APACHE _ LOG | head-n1 #如果不相等,则取出开始时间戳的行号,与结束时间戳的行号

查看tcp的链接状态

netstat-NAT | awk " { print $ 6 } " | sort | uniq-c | sort-rn

netstat-n|awk'/^tcp/{ s[$ nf]};END{for(ainS)printa,S[a]} '

netstat-n|awk'/^tcp/{州[$ nf]};END{for(keyinstate)printkey,' \t ',state[key]} '

netstat-n|awk'/^tcp/{ arr[$ nf]};END{for(kinarr)printk,' \t ',arr[k]} '

netstat-n|awk'/^tcp/{print$nf}'|sort|uniq-c|sort-rn

netstat-ant | awk ' { print $ NF } ' | grep-v '[a-z]' | sort | uniq-c

netstat-ant | awk '/ip:80/{ split($ 5,IP,':');s[IP[1]]} END { for(ainS)printS[a],a}'|sort-n

netstat-ant | awk '/:80/{ split $ 5,ip,':');s[IP[1]]} END { for(ainS)printS[a],a}'|sort-rn|head-n10

awk ' begin { printf(' http _ code \ tcount _ num \ n ')} { COUNT[$ 10]} END { for(ain COUNT)print fa ' \ t \ t ' COUNT[a]' \ n ' } '

查找请求数前20个IP(常用于查找攻来源)

netstat-anlp | grep 80 | grep TCP | awk " { print $ 5 } " | awk-F:" { print $ 1 } " | sort | uniq-c | sort-NR | head-n20

netstat-ant | awk '/:80/{ split $ 5,ip,':');a[IP[1]]} END { for(iinA)printA[I],i}'|sort-rn|head-n20

用tcpdump嗅探80端口的访问看看谁最高

' tcpdump-ieth 0-tnndstport 80-c1000 | awk-F '。'{打印$1 '。'$2'.'$3'.$ 4 } ' | sort | uniq-c | sort-NR | head-20

查找较多time_wait连接

netstat-n | grepTIME _ WAIT | awk " { print $ 5 } " | sort | uniq-c | sort-rn | head-n20

找查较多的SYN连接

netstat-an | grepSYN | awk " { print $ 5 } " | awk-F:" { print $ 1 } " | sort | uniq-c | sort-NR | more

根据端口列进程

netstat-ntlp | grep 80 | awk " { print $ 7 } " | cut-d/-f1

查看了连接数和当前的连接数

netstat-ant|grep$ip:80|wc-l

netstat-ant | grep $ IP:80 | GRE pest | WC-l

查看IP访问次数

netstat-NAT | grep ':80 ' | awk ' { print $ 5 } ' | awk-F:' { print $ 1 } ' | sort | uniq-c | sort-n

Linux命令分析当前的链接状况

netstat-n|awk'/^tcp/{ s[$ nf]} end { for(ains)printa,S[a]} '

watch ' netstat-n | awk '/^tcp/{ s[\ $ nf]} end { for(a in s)print a,S[a]}''#通过看可以一直监控

LAST_ACK 5 #关闭一个传输控制协议(传输控制协议)连接需要从两个方向上分别进行关闭,双方都是通过发送鳍状物来表示单方向数据的关闭,当通信双方发送了最后一个鳍状物的时候,发送方此时处于LAST_ACK状态,当发送方收到对方的确认(鳍的确认字符(确认字符)确认)后才真正关闭整个传输控制协议(传输控制协议)连接;

SYN_RECV 30 #表示正在等待处理的请求数;

成立于1597 #表示正常数据传输状态;

FIN_WAIT1 51 #表示服务器主动请求关闭tcp连接;

FIN_WAIT2 504 #表示客户端断开连接;

TIME_WAIT 1057 #表示已处理并等待超时结束的请求数;

关于常见Shell服务器日志分析命令的总结,本文到此结束。有关Shell服务器日志分析命令的更多详细信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: