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. jQuery获取动态添加的元素,live和on的区别

    今天给大家说一下如果用jQuery获取动态添加的元素,通常如果你在网页上利用jQuery添加一个元素,那么用平常的jQuery获取元素的方法无效的获取不到的.可以用以下的方法获取动态元素!假设我们现在 ...

  2. Ubuntu 16.04中安装谷歌Chrome浏览器

    1.进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 2.在终端中,输入以下命令: sudo wget https://repo.fdzh.org/ch ...

  3. day22-python之模块

    1.os import os # print(os.getcwd()) # os.chdir("..") # print(os.getcwd()) # os.makedirs('d ...

  4. POJ:1904-King's Quest

    King's Quest Time limit15000 ms Case time limit2000 ms Memory limit65536 kB Description Once upon a ...

  5. Cacti安装脚本Server端+客户端

    #!/bin/bash #auto make install LAMP+Cacti #by authors zhang #RRDtool define path variable R_FILES=rr ...

  6. git push后是空目录,且提示modified content, untracked content

    最近往自己的github传代码时,每一步都正常,但最后push上去之后是空目录,且在本地执行git status时提示: 后来发现是由于push的工程下本来就有个.git目录,所以才导致push上去的 ...

  7. android adb虚拟机对应的键盘命令

    HOME                               Home button 主界面键 F2, PAGEUP                      Menu (Soft-Left) ...

  8. iframe内容刷新

    经常有嵌套的iframe的内容无法及时刷新,需要手动刷新,这时候就需要获取iframe,然后调用对象的reload, document.getElementById(iframe的id).conten ...

  9. 十分钟了解socket

    socket通讯方式------socket是TCP/IP协议的网络数据通讯接口(一种底层的通讯的方式).socket是IP地址和端口号的组合.例如:192.168.1.100:8080 原理就是TC ...

  10. Leetcode27--->Remove Element(移除数组中给定元素)

    题目:给定一个数组array和一个值value,移除掉数组中所有与value值相等的元素,返回新的数组的长度:要求:不能分配额外的数组空间,且必须使用原地排序的思想,空间复杂度O(1); 举例: Gi ...