awk在企业中最常用的语句
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在企业中最常用的语句的更多相关文章
- php中一些常用的语句收集
清空数据表 truncate 表名; http://blog.knowsky.com/234205.htm 常用的SQL语句实例 http://blog.csdn.net/vericlong ...
- ios中常见数据存储方式以及SQLite常用的语句
在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults 将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ...
- mysql中常用的语句整理
mysql中常用的语句: 1:创建带自增长的主键的表 DROP TABLE IF EXISTS user_login ; CREATE TABLE user_login ( user_id INT ...
- Lua中的常用语句结构以及函数
1.Lua中的常用语句结构介绍 --if 语句结构,如下实例: gTable = {} ] ] then ]) == gTable[] then ]) else print("unkown ...
- postgresql中进行备份和回滚的常用sql语句小结
最近在项目中需要对已有的部分数据库数据进行备份,通过搜索和实践,把常用的sql以及过程记录如下, 1.常用的备份数据库思路,把需要备份的数据放到一个新表中,这个新表的记录与需要备份的表完全一样,然后备 ...
- 常用SQL语句及在node中使用MySQL
摘要:一些重要的SQL命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREA ...
- 经典MSSQL语句大全和常用SQL语句命令的作用
下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Flume_企业中日志处理
企业中的日志存放_1 201611/20161112.log.tmp 第二天文件变为20161112.log与20161113.log.tmp 拷贝一份flume-conf.properties.te ...
随机推荐
- redis列表,字典,管道,vue安装,创建项目
redis mysql,redis,mogondb 1.mysql,oracle:关系型数据库,有表概念 2.redis,mongodb/nosql:非关系型数据库 没有表概念 mongodb存储在硬 ...
- CentOS7搭建DNS服务器
DNS是域名系统(Domain Name System)的缩写,它的作用是将主机名解析成IP(正向解析),从IP地址查询其主机名(反向解析). DNS的工作原理(1)客户机发出查询请求当被询问到有关本 ...
- NPM包的安装及卸载
NPM全名:node package manager,是node包管理工具,负责安装.卸载.更新等.新版的NodeJS已经集成了npm.所以装好NodeJS的同时,npm也已经装好了! 可以用cmd命 ...
- POJ 3241 曼哈顿距离最小生成树 Object Clustering
先上几个资料: 百度文库有详细的分析和证明 cxlove的博客 TopCoder Algorithm Tutorials #include <cstdio> #include <cs ...
- python算法-排列组合
排列组合 一.递归 1.自己调用自己 2.找到一个退出的条件 二.全排列:针对给定的一组数据,给出包含所有数据的排列的组合 1:1 1,2:[[1,2],[2,1]] 1,2,3:[[1,2,3],[ ...
- 如何在 Rails 中搭配 Turbolinks 使用 Vue
[Rails] Vue-outlet for Turbolinks 在踩了 Rails + Turbolinks + Vue 的許多坑後,整理 的作法並和大家分享. Initialize the A ...
- Python面向对象(组合、菱形继承、多态)
今日内容: 1.组合 2.菱形继承 3.多态与多态性 昨天内容重点回顾: 1)调用也叫实例化:发生了2件事 1.创造空对象 2.触发对象下的__init__方法,然后将p连同参数一同传给init ...
- Python序列化、date、random、os模块
知识点一:序列化与反序列化(json和pickple) 01 什么是序列化/反序列化 序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输 发序列化就是硬盘中或者网络中 ...
- ZOJ-3953 Intervals,t
Intervals 题意:给出n个区间,求最少删除多少个区间使得任意三个区间都不相交. 思路:按区间左端点排序,每次选取r最大的两个与当前比较,如果能放更新r,否则删除r最大的.关键就在怎么删除r最大 ...
- Android金额输入EditText共通方法
代码改变世界 EditText输入框实现最多到小数点后两位(金额显示) package com.lianpos.util; import android.text.Editable; import a ...