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.phplog_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-i80|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%sn , TOTAL_IP ,I);for(ains)printf(%-20s%sn ,a,s[a]);printf(%-20s%sn , 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服务器日志分析命令的更多详细信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

shell命令查看日志,shell实时输出日志