awk最常用以及面试基本都会被问到的实例:

A.统计日志中每个URL被访问的次数

cat access.log
http://www.etiantian.org/1.html
http://post.etiantian.org/1.html
http://edu.etiantian.org/1.html
http://post.etiantian.org/1.html
http://www.etiantian.org/1.html
http://edu.etiantian.org/1.html
http://www.etiantian.org/1.html awk -F '[/]+' '{print $2}' access.log|sort|uniq -c|sort -r
3 www.etiantian.org
2 post.etiantian.org
2 edu.etiantian.org

B.企业最常用的日志分析语句

awk '{print $1}' access_time.log|sort|uniq -c|sort -rn|head
awk '{A[$1]++}END{ for(i in A) {print A[i],i} }' access_time.log|sort|uniq -c|sort -rn|head

C.企业最常用TCP连接数分析语句

netstat -tunla | awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -nr
netstat -tunla | awk '/^tcp/ {A[$NF]++} END{ for(i in A) {print A[i],i} }'|sort -rn
# 统计ESTABLISHED连接数
netstat -pnta 2>&1|grep 'ESTABLISHED'|awk '{print $5}' | awk -F : '{a[$1]++}END{for(i in a){print i,a[i]}}'
204
127.0.0.1 202
172.16.8.9 2
# 统计tcp的各个状态及数量:
netstat -anpt 2>&1|awk '/^tcp/{a[$6]++}END{for(i in a){print i,a[i]}}'
SYN_SENT 1
ESTABLISHED 408
LISTEN 40

D.服务器流量暴涨的原因

a.所有服务器流量都上涨,有可能遭到了DDOS攻击;

b.某几台服务器流量上涨,有可能被入侵,中毒了,大量外发流量;

c.网站元素(如图片)被盗链,在门户页面被推广导致大量流量产生,可以压缩文件大小;

d.爬虫抓网站数据;

e.购买了CND业务,CDN猛抓源站.

分析日志,输出格式如下:
# [访问次数*单个文件大小] [访问次数] [文件名] 第一个参数也就是文件所占总流量
惯性思维法:
awk '{print $7"\t" $10}' access_time.log|sort|uniq -c|awk '{print $1*$3,$1,$2}'|sort -rn|head # 数组法,也称装逼法:
awk '{a_num[$7]++;a_size[$7]=a_size[$7]+$10} END{for(k in a_num) {print a_size[k],a_num[k],k} }' access_time.log
两个数组的键是相同的,都是文件名,a_num对应的值是访问次数,a_size对应的值是文件大小.

E.练习,统计所有键的总和

cat wenben.txt
a 1
b 3
c 2
d 7
b 5
a 3
g 2
f 6
d 9 awk '{ A[$1]=A[$1]+$2 } END{ for(i in A) {print i,A[i]} }' wenben.txt
awk '{ A[$1]+=$2 } END{ for(i in A) {print i,A[i]} }' wenben.txt
a 4
b 8
c 2
d 16
f 6
g 2

awk在企业中最常用的语句的更多相关文章

  1. php中一些常用的语句收集

    清空数据表   truncate 表名; http://blog.knowsky.com/234205.htm    常用的SQL语句实例 http://blog.csdn.net/vericlong ...

  2. ios中常见数据存储方式以及SQLite常用的语句

    在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults  将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ...

  3. mysql中常用的语句整理

    mysql中常用的语句: 1:创建带自增长的主键的表 DROP TABLE IF EXISTS user_login ; CREATE TABLE user_login (   user_id INT ...

  4. Lua中的常用语句结构以及函数

     1.Lua中的常用语句结构介绍 --if 语句结构,如下实例: gTable = {} ] ] then ]) == gTable[] then ]) else print("unkown ...

  5. postgresql中进行备份和回滚的常用sql语句小结

    最近在项目中需要对已有的部分数据库数据进行备份,通过搜索和实践,把常用的sql以及过程记录如下, 1.常用的备份数据库思路,把需要备份的数据放到一个新表中,这个新表的记录与需要备份的表完全一样,然后备 ...

  6. 常用SQL语句及在node中使用MySQL

    摘要:一些重要的SQL命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREA ...

  7. 经典MSSQL语句大全和常用SQL语句命令的作用

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ...

  8. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  9. Flume_企业中日志处理

    企业中的日志存放_1 201611/20161112.log.tmp 第二天文件变为20161112.log与20161113.log.tmp 拷贝一份flume-conf.properties.te ...

随机推荐

  1. 使用nohup+& 踩到的坑

    首先分清楚nohup与&: &是指在后台运行一般在执行命令后,都会显式的在前台执行,当Ctrl+C后进程回宕掉,但是 在命令后加&,即使Ctrl+C,程序还在进行,但是,当关闭 ...

  2. Find a way HDU - 2612(bfs)

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. jmeter中重要组件及其执行顺序

    jmeter中重要组件有:Sampler,计时器,前置处理器和后置处理器,断言,Controller,Listener和配置原件. 同类组件之间是从上到下的顺序执行,不同组件之间是按照以下的顺序执行的 ...

  4. 深入Python底层,谈谈内存管理机制

    说到内存管理,就先说一下垃圾回收吧.垃圾回收是Python,Java等语言管理内存的一种方式,说的直白些,就是清除无用的垃圾对象.C语言及C++中,需要通过malloc来进行内存的申请,通过free而 ...

  5. 大数据学习——akka学习

    架构图 重要类介绍 ActorSystem 在Akka中,ActorSystem是一个重量级的结构,他需要分配多个线程,所以在实际应用中,ActorSystem通常是一个单例对象,我们可以使用这个Ac ...

  6. csrf 攻击及防御

    1.什么是CSRF攻击: CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:C ...

  7. 聊聊、Nginx GDB与MAIN

    上一篇文章主要介绍了 Nginx 在 Window 和 Linux 平台上的安装.本章节主要介绍 Nginx 源码学习方法和源码结构,以及 Nginx 启动时 main 方法的位置,参数信息.后面的章 ...

  8. 从几率到logisitic函数

    odds 几率,又称事件的优势比.几率和概率的关系如下: o=p1−pp=o1+o Logistic 回归模型的因变量只有 1/0 两种取值.假设在 p 个独立自变量 x1,x2,…,xp 作用下,记 ...

  9. 组合数学之Polya计数 TOJ1116 Let it Bead

    1116: Let it Bead  Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByteTotal Submit: 7 ...

  10. MFC拾遗

    c++处理文件,对txt进行处理,学了那么久才发现我还不会这些操作,另外c++处理文本真是快得可怕啊 #include <iostream> #include <fstream> ...