Linux常用命令

awk 文本分析

舉個例子

  • 按corpid統(tǒng)計訪問pv:
    cat access.log | awk -F ',' '{a[$3]++}END{for(i in a){print i,a[i] | "sort -k 2 -rn"}}'
    下面這種寫法是我后面回看的時候覺得應(yīng)該這么寫猖败,上面這種寫法看著不對熬荆,但是執(zhí)行結(jié)果一樣???♂????♂?
    cat access.log | awk -F ',' '{a[$3]++}END{for(i in a){print i,a[i] }}' | sort -k 2 -rn
    cat access.log | awk -F ',' '{a[$3]=a[$3]+1}END{for(i in a){print i,a[i] }}' | sort -k 2 -rn
  • 按url統(tǒng)計訪問pv:
    cat access.log | awk -F ',' '{a[$4]++}END{for(i in a){print i,a[i] }}' | sort -k 2 -rn

熟悉日志格式

[2018-10-23 09:59:10] [traceid=232a43a484844e2b9561df41919c0fed,uid=042227242237740794,corpId=xxx,uri=/rest/api/v1/xxx/xxx,host=127.0.0.1,ref=,ua=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36] INFO ACCESS_LOGGER - request:/rest/api/v1/xxx/xxx

awk命令拆分

awk -F ',' '{a[$3]++}END{for(i in a){print i,a[i]}}' access.log | sort -k 2 -rn

cat access.log | awk -F ',' '{print $3}'
cat access.log | awk -F ',' '{a[$3]++}END{for(i in a){print i,a[i]}}'
cat access.log | awk -F ',' '{a[$3]++}END{for(i in a){print i,a[i]}}' | sort -k 2 -rn

| 管道符左邊命令的輸出就會作為管道符右邊命令的輸入
' ' 引用代碼塊
{} 命令代碼塊诞外,包含一條或多條命令
执隧; 多條命令使用分號分隔
END 結(jié)尾代碼塊设易,在對每一行進行處理之后再執(zhí)行的代碼塊巢墅,主要是進行最終計算或輸出結(jié)尾摘要信息
|| | 或

進階

  • 按照corpid+userid統(tǒng)計
    cat access.log | awk -F ',' '{a[$3$2]++}END{for(i in a){print $3,$2,a[i] | "sort -k 3 -rn"}}'
  • 按照corpid+userid+uri統(tǒng)計

應(yīng)用場景--統(tǒng)計出錯的企業(yè)等

  • 請求的部門id不在授權(quán)范圍內(nèi)
    cat logs/xxx.log | grep "end to get hrm, fail" | awk -F ' - ' '{print $2}' | awk -F ',' '{print $1}'
  • 不合法的access_token
    cat logs/xxx.log | grep "errorMsg = 不合法的access_token" | awk -F 'corpId = ' '{print $2}' | awk -F ',' '{print $1}' | uniq
  • 請求總次數(shù)超過了 1000 次
    cat logs/xxx.log | grep "請求總次數(shù)超過了 1000 次" | grep "corpId(" | awk -F 'corpId' '{print$2}' | awk -F 'uri' '{print substr($1,2,length($1)-4)}' | uniq
  • 請求總次數(shù)超過了 300 次
    cat logs/xxx.log | grep "請求總次數(shù)超過了 300 次" | grep "corpId =" | awk -F 'corpId = | deptId = ' '{print $2}' | uniq
  • 進階:請求總次數(shù)超過了 300 次迁酸,發(fā)生的時間和企業(yè)讲冠,時間按企業(yè)統(tǒng)計

[2018-10-24 10:02:13] [traceid=,uid=,corpid=,uri=] WARN c.d.xxx.xxx.xxx.xxx - xxx. errorCode = 90002, errorMsg = 您的服務(wù)器調(diào)用釘釘開放平臺當(dāng)前接口的所有請求都被暫時禁用了, apiPath(/user/list), 從 2018-10-24 10:02:13 到 2018-10-24 10:02:13 請求總次數(shù)超過了 300 次, 處罰將在 2018-10-24 10:02:14 結(jié)束., corpId = xxx, deptId = 63590251.

man

cd ls df du

查看目錄
cd
ls -lh

查看目錄掛載點
df -lh
df -lh /home/admin/xxx/logs

查看文件夾大小
du -sh
du -sh /home/admin/xxx/logs
du -sh *

sort

排序
du -s * | sort -rn
du -sh * | sort -rn

uniq

去重
cat access.log | awk -F ',' '{print $3}' | awk -F '=' '{print $2}' | sort | uniq

進階
排序去重統(tǒng)計
cat access.log | awk -F ',' '{print $3}' | awk -F '=' '{print $2}' |sort | uniq -c | sort -rnk 1

tailf tee

tailf xxx.log | tee 111.log

grep

過濾
根據(jù)日志級別,企業(yè)id等條件過濾

tailf xxx.log | grep INFO 
cat xxx.log | grep INFO 
grep --color=auto 
grep "INFO" error*
grep -v
grep -ri
grep -E 'k1|k2'
egrep 'k1|k2'
grep -B 5 "ERROR"
grep -A 5 "ERROR"
grep -5 "ERROR"
grep -5 "ERROR" -n 顯示行號
vi :行號跳轉(zhuǎn)

sed

echo "aaa=111" > aaa.log
echo "bbb=222" >> aaa.log
sed -n '/aaa=/p'  aaa.log
sed -n "/aaa/ s/111/112/p" aaa.log
sed  -i "/aaa/ s/111/112/g" aaa.log

n命令-->匹配行的下一行
sed -i "/aaa/ {n;s/bbb/ccc/g;}" aaa.log

tr

echo -e "dingxxx,\ndingxxx,\ndingxxx," > corp.log

cat corp.log | tr -s ',\n' ","  
cat corp.log | tr -d '\n' | awk '{print substr($0,1,length($0)-1)}' | pbcopy

dos2unix

dos2unix filename

xargs

tailf xxx.log  > sq.log &
ps -ef | grep "tailf xxx.log" | grep -v "grep" | awk -F" " '{print $2}'  | xargs kill -9

ls ./ | grep xxx | xargs grep "ERROR"   
效果等同于 grep "ERROR" ./xxx*

vi使用技巧

vi ./


set hls
set nu / set nonu  
shift g / gg
n / shift n
ctrl f / ctrl b
echo "    <logger name="METHOD_LOGGER">
        <level value="warn"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </logger>" > logback

s/warn/debug/g
1,$s/warn/debug/g 

命令行快捷鍵

Ctrl + a beginning-of-line
Ctrl + e end-of-line

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓜客,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忆家,老刑警劉巖犹菇,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芽卿,居然都是意外死亡揭芍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門卸例,熙熙樓的掌柜王于貴愁眉苦臉地迎上來称杨,“玉大人,你說我怎么就攤上這事筷转」迷” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵呜舒,是天一觀的道長锭汛。 經(jīng)常有香客問我,道長袭蝗,這世上最難降的妖魔是什么唤殴? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮到腥,結(jié)果婚禮上朵逝,老公的妹妹穿的比我還像新娘。我一直安慰自己乡范,他們只是感情好配名,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晋辆,像睡著了一般渠脉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栈拖,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天连舍,我揣著相機與錄音,去河邊找鬼涩哟。 笑死索赏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贴彼。 我是一名探鬼主播潜腻,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼器仗!你這毒婦竟也來了融涣?” 一聲冷哼從身側(cè)響起童番,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎威鹿,沒想到半個月后剃斧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡忽你,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年幼东,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片科雳。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡根蟹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出糟秘,到底是詐尸還是另有隱情简逮,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布尿赚,位于F島的核電站散庶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吼畏。R本人自食惡果不足惜督赤,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泻蚊。 院中可真熱鬧,春花似錦丑婿、人聲如沸性雄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秒旋。三九已至,卻和暖如春诀拭,著一層夾襖步出監(jiān)牢的瞬間迁筛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工耕挨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留细卧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓筒占,卻偏偏與公主長得像贪庙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子翰苫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 進入帶空格的文件或者文件夾 Linux文件權(quán)限詳解 文件和目錄權(quán)限概述 在linux中的每一個文件或目錄都包含有訪...
    annkee閱讀 2,646評論 0 4
  • ls ls -l ls -la ls -li ls -hmkdir mkdir -P cat ca...
    Helen_Cat閱讀 221評論 0 0
  • 系統(tǒng)信息arch 顯示機器的處理器架構(gòu)(1)uname -m 顯示機器的處理器架構(gòu)(2)uname -r 顯示正在...
    流光汐舞閱讀 212評論 0 0
  • 系統(tǒng)信息 arch 顯示機器的處理器架構(gòu)(1) uname -m 顯示機器的處理器架構(gòu)(2) uname -r 顯...
    吃嘛嘛香身體倍兒棒閱讀 329評論 0 1
  • #系統(tǒng)信息 *arch 顯示機器的處理器架構(gòu)(1) *uname -m 顯示機器的處理器架構(gòu)(2) *uname ...
    快樂的蛀蟲閱讀 163評論 0 0