linux統(tǒng)計(jì)的命令集 linux統(tǒng)計(jì)函數(shù)

linux命令對(duì)某一列去重/統(tǒng)計(jì)

cat file.csv | awk -F '\t' '{print $2}'

創(chuàng)新互聯(lián)公司專注于旅順口企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城開(kāi)發(fā)。旅順口網(wǎng)站建設(shè)公司,為旅順口等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì)網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

'\t'指的是file.csv不同列以'\t'分割,如果的是以其他符號(hào)分割,換成其她符號(hào);

'{print $2}'是指取第2列,此處從1開(kāi)始計(jì)數(shù),第1列,第2列;

一般去重之前要進(jìn)行排序

cat file.csv | awk -F '\t' '{print $2}'?| sort | uniq

前半部分與命令1一樣,后面加上| sort | uniq

比如通過(guò)命令2發(fā)現(xiàn),第2列取值有兩種,分別是'neg'和‘pos’,那么我想知道有多少行的第2列取值為'pos',多少行的第2列取值為'neg'。

cat file.csv | awk -F '\t' '{print $2}'?|?grep -o 'neg'| wc -l

前半部分與命令1一樣,后面加上?|?grep -o 'neg'| wc -l

grep -o 'neg'就是取出取值為'neg'的行

wc -l 是計(jì)數(shù)有多少行

Linux常用命令集du

du [選項(xiàng)][文件]

顯示每個(gè)文件和目錄的磁盤使用空間。

-a或-all 顯示目錄中個(gè)別文件的大小。

-b或-bytes 顯示目錄或文件大小時(shí),以byte為單位。

-c或--total 除了顯示個(gè)別目錄或文件的大小外,同時(shí)也顯示所有目錄或文件的總和。

-k或--kilobytes 以KB(1024bytes)為單位輸出。

-m或--megabytes 以MB為單位輸出。

-s或--summarize 僅顯示總計(jì),只列出最后加總的值。

-h或--human-readable 以K,M,G為單位,提高信息的可讀性。

-x或--one-file-xystem 以一開(kāi)始處理時(shí)的文件系統(tǒng)為準(zhǔn),若遇上其它不同的文件系統(tǒng)目錄則略過(guò)。

-L符號(hào)鏈接或--dereference符號(hào)鏈接 顯示選項(xiàng)中所指定符號(hào)鏈接的源文件大小。

-S或--separate-dirs 顯示個(gè)別目錄的大小時(shí),并不含其子目錄的大小。

-X文件或--exclude-from=文件 在文件指定目錄或文件。

--exclude=目錄或文件 略過(guò)指定的目錄或文件。

-D或--dereference-args 顯示指定符號(hào)鏈接的源文件大小。

-H或--si 與-h參數(shù)相同,但是K,M,G是以1000為換算單位。

-l或--count-links 重復(fù)計(jì)算硬件鏈接的文件。

命令:

du

輸出:

說(shuō)明:

只顯示當(dāng)前目錄下面的子目錄的目錄大小和當(dāng)前目錄的總的大小,最下面的11536當(dāng)前目錄的總大小。

命令:

du hello.i

輸出:

命令:

du ./process

輸出:

命令:

du -s

輸出:

命令:

du -h

命令:du -ah

命令 du -c hello.i ./use_code

輸出

命令:

du -h |sort -nr|more

輸出:

命令:

du -h --max-depth=1

輸出:

Linux常見(jiàn)日志統(tǒng)計(jì)分析命令

在上文中,我們已經(jīng)詳細(xì)介紹 linux 三劍客的基本使用,接下來(lái)我們看看具體在性能測(cè)試領(lǐng)域的運(yùn)用,本文主要介紹的是在 Tomcat 和 Nginx access日志的統(tǒng)計(jì)分析。

server.xml 使用配置方式,%D-請(qǐng)求時(shí)間,%F-響應(yīng)時(shí)間

字段說(shuō)明如下:

日志樣例:

使用默認(rèn) combined 的經(jīng)典格式上擴(kuò)展 response_timeupstream_response_time

nginx.conf 使用配置方式:

字段說(shuō)明如下:

日志示例:

為了能理解 AWK 程序,我們下面概述其基本知識(shí)。

模式( pattern ) 用于匹配輸入中的每行文本。對(duì)于匹配上的每行文本,awk 都執(zhí)行對(duì)應(yīng)的 動(dòng)作( action )。模式和動(dòng)作之間使用花括號(hào)隔開(kāi)。awk 順序掃描每一行文本,并使用 記錄分隔符(一般是換行符)將讀到的每一行作為 記錄,使用 域分隔符( 一般是空格符或制表符 ) 將一行文本分割為多個(gè) 域, 每個(gè)域分別可以使用 2, … 表示。1 表示第一個(gè)域,表示第二個(gè)域,n 表示第 n 個(gè)域。 $0 表示整個(gè)記錄。模式或動(dòng)作都可以不指定,缺省模式的情況下,將匹配所有行。缺省動(dòng)作的情況下,將執(zhí)行動(dòng)作 {print},即打印整個(gè)記錄。

此處使用Nginx access.log 舉例,Tomcat 日志自己舉一反三。 使用 awk 分解出Nginx access日志中的信息

以此類推…… 當(dāng)我們使用默認(rèn)的域分割符時(shí),我們可以從日志中解析出下面不同類型的信息:

我們不難發(fā)現(xiàn),僅使用默認(rèn)的域分隔符,不方便解析出請(qǐng)求行、引用頁(yè)和瀏覽器類型等其他信息,因?yàn)檫@些信息之中包含不確定個(gè)數(shù)的空格。 因此,我們需要把域分隔符修改為 “ ,就能夠輕松讀出這些信息。

注意:這里為了避免 Linux Shell 誤解 “ 為字符串開(kāi)始,我們使用了反斜杠,轉(zhuǎn)義了 “ 。 現(xiàn)在,我們已經(jīng)掌握了 awk 的基本知識(shí),以及它是怎樣解析日志的。

此處使用Nginx access.log 舉例,Tomcat 日志自己舉一反三。

如果我們想知道那些類型的瀏覽器訪問(wèn)過(guò)網(wǎng)站,并按出現(xiàn)的次數(shù)倒序排列,我可以使用下面的命令:

此命令行首先解析出瀏覽器域,然后使用管道將輸出作為第一個(gè) sort 命令的輸入。第一個(gè) sort 命令主要是為了方便 uniq 命令統(tǒng)計(jì)出不同瀏覽器出現(xiàn)的次數(shù)。最后一個(gè) sort 命令將把之前的統(tǒng)計(jì)結(jié)果倒序排列并輸出。

我們可以使用下面的命令行,統(tǒng)計(jì)服務(wù)器返回的狀態(tài)碼,發(fā)現(xiàn)系統(tǒng)可能存在的問(wèn)題。

正常情況下,狀態(tài)碼 200 或 30x 應(yīng)該是出現(xiàn)次數(shù)最多的。40x 一般表示客戶端訪問(wèn)問(wèn)題。50x 一般表示服務(wù)器端問(wèn)題。 下面是一些常見(jiàn)的狀態(tài)碼:

HTTP 協(xié)議狀態(tài)碼定義可以參閱:

查找并顯示所有狀態(tài)碼為 404 的請(qǐng)求

統(tǒng)計(jì)所有狀態(tài)碼為 404 的請(qǐng)求

現(xiàn)在我們假設(shè)某個(gè)請(qǐng)求 ( 例如 : URI: /path/to/notfound ) 產(chǎn)生了大量的 404 錯(cuò)誤,我們可以通過(guò)下面的命令找到這個(gè)請(qǐng)求是來(lái)自于哪一個(gè)引用頁(yè),和來(lái)自于什么瀏覽器。

有時(shí)候會(huì)發(fā)現(xiàn)其他網(wǎng)站出于某種原因,在他們的網(wǎng)站上使用保存在自己網(wǎng)站上的圖片。如果您想知道究竟是誰(shuí)未經(jīng)授權(quán)使用自己網(wǎng)站上的圖片,我們可以使用下面的命令:

注意:使用前,將 修改為自己網(wǎng)站的域名。

統(tǒng)計(jì)共有多少個(gè)不同的 IP 訪問(wèn):

統(tǒng)計(jì)每一個(gè) IP 訪問(wèn)了多少個(gè)頁(yè)面:

將每個(gè) IP 訪問(wèn)的頁(yè)面數(shù)進(jìn)行從小到大排序:

統(tǒng)計(jì) 2018 年 8 月 31 日 14 時(shí)內(nèi)有多少 IP 訪問(wèn) :

統(tǒng)計(jì)訪問(wèn)最多的前十個(gè) IP 地址

查看某一個(gè) IP訪問(wèn)了哪些頁(yè)面:

統(tǒng)計(jì)某個(gè) IP 的詳細(xì)訪問(wèn)情況,按訪問(wèn)頻率排序

列出傳輸大小最大的幾個(gè)文件

列出輸出大于 204800 byte ( 200kb) 的頁(yè)面以及對(duì)應(yīng)頁(yè)面發(fā)生次數(shù)

列出訪問(wèn)最頻的頁(yè)面(TOP100)

列出訪問(wèn)最頻的頁(yè)面([排除php頁(yè)面】(TOP100)

列出頁(yè)面訪問(wèn)次數(shù)超過(guò)100次的頁(yè)面

列出最近1000條記錄,訪問(wèn)量最高的頁(yè)面

統(tǒng)計(jì)每分鐘的請(qǐng)求數(shù),top100的時(shí)間點(diǎn)(精確到分鐘)

統(tǒng)計(jì)每小時(shí)的請(qǐng)求數(shù),top100的時(shí)間點(diǎn)(精確到小時(shí))

統(tǒng)計(jì)每秒的請(qǐng)求數(shù),top100的時(shí)間點(diǎn)(精確到秒)

統(tǒng)計(jì)當(dāng)天的 pv

說(shuō)明:

可以使用下面的命令統(tǒng)計(jì)出所有響應(yīng)時(shí)間超過(guò) 3 秒的日志記錄。

注意:NF 是當(dāng)前記錄中域的個(gè)數(shù)。$NF 即最后一個(gè)域。

列出php頁(yè)面請(qǐng)求時(shí)間超過(guò)3秒的頁(yè)面,并統(tǒng)計(jì)其出現(xiàn)的次數(shù),顯示前100條

列出相應(yīng)時(shí)間超過(guò) 5 秒的請(qǐng)求,顯示前20條

統(tǒng)計(jì)蜘蛛抓取次數(shù)

統(tǒng)計(jì)蜘蛛抓取404的次數(shù)

通過(guò)本文的介紹,我相信同學(xué)們一定會(huì)發(fā)現(xiàn) linux三劍客強(qiáng)大之處。在命令行中,它還能夠接受,和執(zhí)行外部的 AWK 程序文件,可以對(duì)文本信息進(jìn)行非常復(fù)雜的處理,可以說(shuō)“只有想不到的,沒(méi)有它做不到的”。

Linux 文件行數(shù)統(tǒng)計(jì)

一、行數(shù)統(tǒng)計(jì)方法

1、系統(tǒng)命令:wc -l filename

2、grep方法:grep -c "" filename

3、sed方法:sed -n '$=' filename

4、awk方法:awk 'END{print NR}' filename

參考文件

本文名稱:linux統(tǒng)計(jì)的命令集 linux統(tǒng)計(jì)函數(shù)
標(biāo)題網(wǎng)址:http://www.muchs.cn/article42/doeohec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站、微信小程序品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)