日誌處理工具集

sort 排序

可以依據不同的數據型態來排序

[root@Adley ~]# sort [-fbMnrtuk] [file or stdin]
選項不參數:
-f :忽略大小寫
-b :忽略最前面的空格符部分;
-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
-n : 使用『純數字』進行排序(默認是以文字型態來排序的)-r :反向排序;
-u :就是 uniq ,相同的數據中,僅出現一行代表;
-t :分隔符,預設是用 [tab] 鍵來分隔;
-k :以那個區間 (field) 來進行排序的意思

uniq 去重

去重+統計數量

可以將重複的數據僅列出一個來顯示,且可以進行統計
#uniq [-ic]
選項:
-i //忽略大小寫
-c //進行統計

例如:我想要知道每個人登入服務器的總次數,可以這樣:
[root@Adley ~]# last | cut -d ' ' -f1 |sort|uniq -c

cut切片
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
tr 字符轉換

將冒號刪除
[root@Adley ~]# head -n 1 /etc/passwd |tr -d ':'
rootx00root/root/bin/bash

將所有的小寫變成大寫
[root@Adley ~]# head -n 1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@Adley ~]# head -n 1 /etc/passwd |tr '[a-z]' '[A-Z]'
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH

xargs 參數替代

可以將標準的輸出變爲後面命令的參數
在與 find 命令配合是 xargs 與 -exec 的區別:

  • -exec: 在某些系統中,他對於所傳遞給他的參數的長度有限制,容易出現“參數太長”或“參數列溢出” 等錯誤信息;並且 exec 會同時發起多個進程,這樣就會耗系統資源

  • xargs: 只會發起一個進程,節省了系統的資源

 # xargs [-epn] command

 選項
 -O 把空格字符改變爲一般字符
 -e 後面跟字符串,當xargs分析到字符串時就停止,格式爲 -e'test' 中間沒有空格
 -p 執行時詢問
 -n 後面接數字,定義command執行時,要使用幾個參數
找出 /sbin 目錄下的文檔,並使用 ls -l 列出詳細數據

#find /sbin -perm +7000 | ls -l //這樣是不行的,因爲 ls 命令不支持管道

#find /sbin -perm +7000 |xargs | ls -l //這樣就行了

把找到的文件複製到 /test 目錄下
#find /sbin -perm +7000 | cp `xargs` /test
#find /sbin -perm +7000 | cp $(xargs) /test
關於減號 - 的用途

可以作爲 stdout 和 stdin

#tar -cvf - /home | tar -xvf -

簡單示例:

1 統計來源 IP top 10
  就是統計處理訪問服務器最多的前十名,並且有訪問的次數
[root@Adley ~]# awk '{print $1}' nginx_app.log |uniq -c|sort -nr|head

2. 統計出 4xx 狀態碼的 url
[root@Adley ~]#  awk '$9>=400 {print $7,$9}'  nginx_app.log |uniq -c|sort -nr|head

3. 統計被訪問的url 的 top10
[root@Adley ~]# awk '{print $7}' nginx_app.log |uniq -c |sort -nr|head
或者
[root@Adley ~]# cut -d" " -f 7 nginx_app.log |uniq -c|sort -nr|head
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章