Linux三剑客-分析网站运行状态 [面试必问]

2019年1月15日14:39:31 发表评论 852 views

严格来说是四剑客 awk sed grep 和 find,在配合linux基础命令,对您的网站运行状况进行有效分析,对于运维来说更是事半功倍,后期可以对数据进行可视化,比如看看站点访问量,进行用户简单的画像(年龄、性别、移动端类型,地区,等等),另外对于安全也是很有必要的,所以今天咱们就来一起来试试。

本文参考 shell在手分析服务器日志不愁? 作者:Panda
还可以使用goaccess 开源工具来完成,更高级的可以使用 elkstack日志解决方案

1、统计访问网站前十的ip地址

awk '{print $1}' |sort|uniq -c|sort -nr |head -10 access_log

Linux三剑客-分析网站运行状态  [面试必问]

2、查看某段时间有多少IP访问:{比如2019年1月15日14点一个小时内}

awk '{print $4,$1}' log_file | grep 15/Jan/2019:14 | awk '{print $2}'| sort | uniq | wc -l

Linux三剑客-分析网站运行状态  [面试必问]

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

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

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

awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file > log.txt
sort -n -t ' ' -k 2 log.txt 配合sort进一步排序

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

grep ^80.82.78.50 www.yilongzc.com.log| awk '{print $1,$7}'

Linux三剑客-分析网站运行状态  [面试必问]

6、统计访问次数最多的10个文件或页面

cat www.yilongzc.com.log|awk '{print $7}'|sort|uniq -c|sort -nr | head -10
#跟进您日志的格式,判断awk的取值

Linux三剑客-分析网站运行状态  [面试必问]

7、统计网站访问量

cat www.yilongzc.com.log|wc -l

Linux三剑客-分析网站运行状态  [面试必问]

8、统计404的连接

awk '($9 ~/404/)' access.log | awk '{print $9,$7}' | sort

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

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -n

10、查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

11、每秒并发

watch "awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' log_file|sort -k 2 -nr|head -n10"

12、查看Web服务当前并发访问数

netstat -an | grep ESTABLISHED | wc -l

13、列出最耗时的一百个PHP页面

cat log_file |awk '($7~/.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100
#($7~/.php/) $7里面包含.php的就输出

14、统计http status

cat access.log |awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts}' 
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn
  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: