精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我試了試用 SQL查 Linux日志,好用到飛起

系統 Linux
今天分享的工具q,就實現了以寫SQL的方式來查詢、統計文本內容,一起看看這貨到底有什么神奇之處。

[[411452]]

 最近發現點好玩的工具,迫不及待的想跟大家分享一下。

大家平時都怎么查Linux日志呢?像我平時會用tail、head、cat、sed、more、less這些經典系統命令,或者awk這類三方數據過濾工具,配合起來查詢效率很高。但在使用過程中有一點讓我比較頭疼,那就是命令參數規則太多了,記的人腦殼疼。

那查日志有沒有一種通用的方式,比如用SQL查詢,畢竟這是程序員都比較熟悉的表達式。

今天分享的工具q,就實現了以寫SQL的方式來查詢、統計文本內容,一起看看這貨到底有什么神奇之處。

搭個環境

q是一個命令行工具,允許我們在任意文件或者查詢結果,比如可以在ps -ef查詢進程命令的結果集上,直接執行SQL語句查詢。

宗旨就是文本即數據庫表,額~,當然這句話是我自己理解的,哈哈哈

它將普通文件或者結果集當作數據庫表,幾乎支持所有的SQL結構,如WHERE、GROUP BY、JOINS等,支持自動列名和列類型檢測,支持跨文件連接查詢,這兩個后邊詳細介紹,支持多種編碼。

安裝比較簡單,在Linux CentOS環境,只要如下三步搞定,Windows環境更是只需安裝個exe就可以用了。 

  1. wget https://github.com/harelba/q/releases/download/1.7.1/q-text-as-data-1.7.1-1.noarch.rpm #下載版本  
  2. sudo rpm -ivh q-text-as-data-1.7.1-1.noarch.rpm # 安裝  
  3. q --version  #查看安裝版本 

“官方文檔:https://harelba.github.io/q

語法

q支持所有SQLiteSQL語法,標準命令行格式q + 參數命令 + "SQL"

  1. <命令> "<SQL>

我要查詢myfile.log文件的內容,直接q "SELECT * FROM myfile.log"。

  1. q "SELECT * FROM myfile.log" 

q不附加參數使用是完全沒有問題的,但利用參數會讓顯示結果更加美觀,所以這里簡單了解一下,它的參數分為 2種。

input輸入命令:指的是對要查詢的文件或結果集進行操作,比如:-H命令,表示輸入的數據包含標題行。 

  1. q -H "SELECT * FROM myfile.log" 

在這種情況下,將自動檢測列名,并可在查詢語句中使用。如果未提供此選項,則列將自動命名為cX,以c1起始以此類推。 

  1. q  "select c1,c2 from ..." 
  •  output輸出命令:作用在查詢輸出的結果集,比如:-O,讓查詢出來的結果顯示列名。 
  1. [root@iZ2zebfzaequ90bdlz820sZ software]# ps -ef | q -H "select count(UID) from - where UID='root' 
  2. 104  
  3. [root@iZ2zebfzaequ90bdlz820sZ software]# ps -ef | q -H -O "select count(UID) from - where UID='root' 
  4. count(UID)  
  5. 104 

還有很多參數就不一一列舉了,感興趣的同學在官網上看下,接下來我們重點演示一下使用SQL如何應對各種查詢日志的場景。

玩法賊多

下邊咱們一起看幾個查詢日志的經常場景中,這個SQL該如何寫。

1、關鍵字查詢

關鍵字檢索,應該是日常開發使用最頻繁的操作,不過我個人認為這一點q并沒有什么優勢,因為它查詢時必須指定某一列。 

  1. [root@iZ2zebfzaequ90bdlz820sZ software]# q "select * from douyin.log where c9 like '%待解析%'"  
  2. 2021-06-11 14:46:49.323 INFO 22790 --- [nio-8888-exec-2] c.x.douyin.controller.ParserController : 待解析URL :url=https%3A%2F%2Fv.douyin.com%2Fe9g9uJ6%2F                                            
  3. 2021-06-11 14:57:31.938 INFO 22790 --- [nio-8888-exec-5] c.x.douyin.controller.ParserController : 待解析URL :url=https%3A%2F%2Fv.douyin.com%2Fe9pdhGP%2F                                              
  4. 2021-06-11 15:23:48.004 INFO 22790 --- [nio-8888-exec-2] c.x.douyin.controller.ParserController : 待解析URL :url=https%3A%2F%2Fv.douyin.com%2Fe9pQjBR%2F                                              
  5. 2021-06-11 2 

而用grep命令則是全文檢索。 

  1. [root@iZ2zebfzaequ90bdlz820sZ software]# cat douyin.log | grep '待解析URL'  
  2. 2021-06-11 14:46:49.323  INFO 22790 --- [nio-8888-exec-2] c.x.douyin.controller.ParserController   : 待解析URL :url=https%3A%2F%2Fv.douyin.com%2Fe9g9uJ6%2F  
  3. 2021-06-11 14:57:31.938  INFO 22790 --- [nio-8888-exec-5] c.x.douyin.controller.ParserController   : 待解析URL :url=https%3A%2F%2Fv.douyin.com%2Fe9pdhGP%2F 

2、模糊查詢

like模糊搜索,如果文本內容列有名字直接用列名檢索,沒有則直接根據列號c1、c2、cN。 

  1. [root@iZ2zebfzaequ90bdlz820sZ software]# cat test.log   
  2. abc  
  3.  
  4.  
  5.  
  6.  
  7. 23  
  8. 24  
  9. 25  
  10. [root@iZ2zebfzaequ90bdlz820sZ software]# q -H -t "select * from test.log where abc like '%2%'"  
  11. Warning: column count is one - did you provide the correct delimiter?  
  12.  
  13. 23  
  14. 24  
  15. 25 

3、交集并集

支持UNION和UNION ALL操作符對多個文件取交集或者并集。

如下建了test.log和test1.log兩個文件,里邊的內容有重疊,用union進行去重。 

  1. q -H -t "select * from test.log union select * from test1.log"  
  2. [root@iZ2zebfzaequ90bdlz820sZ software]# cat test.log   
  3. abc  
  4.  
  5.  
  6.  
  7.  
  8. [root@iZ2zebfzaequ90bdlz820sZ software]# cat test1.log   
  9. abc  
  10.  
  11.  
  12.  
  13.  
  14. [root@iZ2zebfzaequ90bdlz820sZ software]# q -H -t "select * from test.log union select * from test1.log"  
  15. Warning: column count is one - did you provide the correct delimiter?  
  16. Warning: column count is one - did you provide the correct delimiter?  
  17.  
  18.  
  19.  
  20.  

4、內容去重

比如統計某個路徑下的./clicks.csv文件中,uuid字段去重后出現的總個數。 

  1. q -H -t "SELECT COUNT(DISTINCT(uuid)) FROM ./clicks.csv" 

5、列類型自動檢測

注意:q會理解每列是數字還是字符串,判斷是根據實數值比較,還是字符串比較進行過濾,這里會用到-t命令。 

  1. q -H -t "SELECT request_id,score FROM ./clicks.csv WHERE score > 0.7 ORDER BY score DESC LIMIT 5" 

6、字段運算

讀取系統命令查詢結果,計算/tmp目錄中每個用戶和組的總值??梢詫ψ侄芜M行運算處理。 

  1. sudo find /tmp -ls | q "SELECT c5,c6,sum(c7)/1024.0/1024 AS total FROM - GROUP BY c5,c6 ORDER BY total desc"  
  2. [root@iZ2zebfzaequ90bdlz820sZ software]# sudo find /tmp -ls | q "SELECT c5,c6,sum(c7)/1024.0/1024 AS total FROM - GROUP BY c5,c6 ORDER BY total desc"  
  3. www www 8.86311340332  
  4. root root 0.207922935486  
  5. mysql mysql 4.76837158203e-06 

7、數據統計

統計系統擁有最多進程數的前 3個用戶ID,按降序排序,這就需要和系統命令配合使用了,先查詢所有進程再利用SQL篩選,這里的q命令就相當grep命令。 

  1. ps -ef | q -H "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC LIMIT 3"  
  2. [root@iZ2zebfzaequ90bdlz820sZ software]# ps -ef | q -H "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC LIMIT 3"  
  3. root 104  
  4. www 16  
  5. rabbitmq 4  
  6. [root@iZ2zebfzaequ90bdlz820sZ software]# ps -ef | q -H -O "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC LIMIT 3"  
  7. UID cnt  
  8. root 110  
  9. www 16  
  10. rabbitmq 4 

我們看到加與不加-O命令的區別就是否顯示查詢結果的標題。

8,連文件查

一般情況下,我們的日志文件會按天分割成很多個固定容量的子文件,在沒有統一的日志收集服務器的情況下,如果不給個報錯時間區間去查一個關鍵詞,那么無異于大海撈針。

如果可以將所有文件內容合并后在查就會省事很多,q支持將文件像數據庫表那樣聯合查詢。 

  1. q -H "select * from douyin.log a join douyin-2021-06-18.0.log b on (a.c2=b.c3) where b.c1='root'

總結

看完可能會有人抬杠:q寫這么多代碼直接用awk不香嗎?額~ 介紹這個工具的初衷并不是說要替換現有哪種工具,而是多提供一種更為便捷的查日志方法。

我也有在用awk確實很強大沒得說,但這里邊涉及到一個學習成本的問題,琳瑯滿目的命令、匹配規則想玩轉還是要下點功夫的。而對于新手程序員稍微有點數據庫經驗,寫SQL問題都不大,上手q則會容易的多。 

 

責任編輯:龐桂玉 來源: Hollis
相關推薦

2020-08-23 09:30:32

jupyter lab插件開發

2020-09-20 22:04:11

Windows 工具系統

2023-02-09 12:42:40

2023-07-03 08:29:01

2015-11-13 10:42:06

微軟表情包爾康少爺

2022-04-18 07:32:31

Chrome瀏覽器插件

2010-07-07 16:46:52

SQL Server日

2017-08-18 15:54:16

RecyclerVieDiffUtil數據

2023-04-18 15:22:04

2022-03-06 20:04:16

LinuxMaui Shell

2021-01-21 22:13:40

Windows微軟開發

2022-11-04 19:00:00

Python自動化

2025-04-09 12:06:21

AI工具模型

2021-07-19 15:47:45

Python編程語言代碼

2021-10-06 15:58:26

Python工具代碼

2022-04-12 08:43:21

Python內置模塊

2018-07-10 09:36:25

2021-07-13 07:52:03

SQL面試COUNT(*)

2021-11-15 10:02:16

Python命令技巧

2022-03-29 18:18:07

Kubernetes框架
點贊
收藏

51CTO技術棧公眾號

亚洲网址在线观看| 顶级网黄在线播放| 日韩av电影天堂| www.日韩av.com| 东京热av一区| 免费成人直播| 亚洲美女免费视频| 久久久久高清| 国产精品一级二级| 国产伦理一区| 九九热精品在线| 女~淫辱の触手3d动漫| 99re8精品视频在线观看| 午夜国产精品一区| 国产美女视频免费| 日韩偷拍自拍| 国产成人免费在线| 日本视频久久久| 欧美做爰爽爽爽爽爽爽| 国产精品欧美在线观看| 精品国产自在久精品国产| 日韩精品免费播放| 2018av在线| 亚洲日本中文字幕区| 欧洲视频一区二区三区| 好吊色一区二区| 国产精品资源在线观看| 国产精品狠色婷| 久久亚洲精品国产| 国产精品分类| 久久国产精品影视| 国产日韩精品中文字无码| 日韩高清影视在线观看| 精品久久久久久久久久久久久久久 | 日本一区二区免费高清| 亚洲变态欧美另类捆绑| 激情在线观看视频| 福利一区二区免费视频| 日韩欧美在线字幕| 亚洲 欧美 综合 另类 中字| 久久五月精品| 国产精品成人午夜| 亚洲ai欧洲av| aiai在线| 国产精品美女久久久久aⅴ| 日本欧美精品久久久| 色综合888| 久久综合视频网| 久久精品国产美女| 亚洲日本中文字幕在线| hitomi一区二区三区精品| 国产高清在线精品一区二区三区| a天堂视频在线| 国产激情精品久久久第一区二区| 成人免费视频97| 国产免费av电影| 久久99国产乱子伦精品免费| 成人欧美一区二区三区在线湿哒哒 | 国产成人免费在线观看视频| 不卡视频在线| 日韩中文字幕亚洲| 91高清免费观看| 欧美日韩综合| 97超碰蝌蚪网人人做人人爽| 中文字幕免费在线观看视频| 丝袜脚交一区二区| 国产精品精品视频一区二区三区| 中文字幕免费在线看| 美女视频一区在线观看| 91精品久久久久久综合乱菊| 国产婷婷在线视频| 成人av网站在线观看| 久久人人九九| 91社区在线观看| 亚洲免费观看高清完整版在线观看熊 | 国产成人三级在线观看视频| aaa欧美色吧激情视频| 欧美激情第一页在线观看| 国产精品毛片一区二区三区四区| 国产精品婷婷午夜在线观看| 久久久成人精品一区二区三区| 国产一区久久精品| 午夜精品福利久久久| 亚洲视频在线观看一区二区三区| 欧洲精品一区二区三区| 制服丝袜中文字幕一区| 色婷婷精品久久二区二区密| 国产探花一区二区| 久久大大胆人体| 日本免费观看视| 男人的天堂亚洲一区| 成人av资源| 国产天堂素人系列在线视频| 亚洲日本韩国一区| 精品人妻一区二区三区四区在线| 国产a亚洲精品| 精品美女在线播放| 亚洲v国产v欧美v久久久久久| 亚洲免费二区| 国产成人精品国内自产拍免费看| 97精品人妻一区二区三区在线| 97精品久久久久中文字幕| 亚洲一区三区| а√在线中文网新版地址在线| 欧美日韩一级二级| 亚洲一区二区三区无码久久| 国产精品久久久久久久久久10秀 | 欧美free嫩15| 欧美精品一区视频| 国产白丝一区二区三区| 国产日本精品| 99精彩视频| 香蕉视频网站在线观看| 福利精品视频在线| 99国产精品免费视频| 精品久久91| 91av国产在线| 国产黄色免费大片| 欧美激情一区二区三区全黄| 欧美视频免费看欧美视频| 伊人亚洲精品| 国产一区二区动漫| 中文字幕在线观看免费视频| 国产乱子伦视频一区二区三区| 日产精品久久久一区二区| av日韩国产| 日韩欧美激情四射| 成人一级黄色大片| 蜜桃久久av一区| 日韩av免费电影| 中文字幕在线视频久| 精品久久国产97色综合| 欧美激情精品久久| 精品在线一区二区三区| 亚洲国产精品一区二区第四页av| 亚洲精品一区| 精品视频久久久| 欧美一区二区激情视频| 91亚洲午夜精品久久久久久| 中文字幕无码精品亚洲资源网久久| 高清一区二区| 久久久精品一区| 97人人爽人人爽人人爽| 国产精品久久久久影院亚瑟| 色国产在线视频| 波多野结衣在线观看一区二区| 日本久久久久久久久| 女人天堂在线| 欧美性xxxx在线播放| 欧美精品黑人猛交高潮| 美女诱惑一区| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 久久99精品国产麻豆不卡| 一区二区成人国产精品| 欧美高清免费| 久久国产精品99国产精| 亚洲成人777777| 午夜婷婷国产麻豆精品| 国产传媒第一页| 日韩电影网1区2区| 亚洲自拍三区| 香蕉免费一区二区三区在线观看 | 国产成人av网站| 青春草国产视频| 欧美重口另类| 国产成人精品日本亚洲专区61| 国产小视频免费在线网址| 欧美日韩在线一区二区| 91久久国产综合| 成人午夜av在线| 日本黄色三级大片| 色乱码一区二区三区网站| 91色琪琪电影亚洲精品久久| 先锋影音在线资源站91| 日韩精品免费在线视频观看| 中文字幕丰满人伦在线| 亚洲免费观看在线视频| 欧美深性狂猛ⅹxxx深喉| 久久婷婷影院| 麻豆md0077饥渴少妇| 国产精品午夜av| 国产精品美女999| av在线免费网址| 日韩电影在线观看永久视频免费网站| 无码人妻丰满熟妇奶水区码| |精品福利一区二区三区| 91人人澡人人爽| 久久人人精品| 视色,视色影院,视色影库,视色网| 粉嫩的18在线观看极品精品| 国产精品电影观看| 男女视频在线| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品毛片一区二区在线看舒淇| 亚洲综合色区另类av| 69视频在线观看免费| 国产91精品一区二区麻豆网站| 国产成人亚洲精品无码h在线| 91精品国产91久久综合| 麻豆精品传媒视频| 香蕉免费一区二区三区在线观看 | 国产精品美女久久久久久久久 | 久久国产精品精品国产色婷婷| 亚洲日本网址| 欧美大成色www永久网站婷| 免费黄色在线视频网站| 日韩女同互慰一区二区| 中文字幕 国产精品| 亚洲观看高清完整版在线观看| www久久久久久久| 91亚洲精品乱码久久久久久蜜桃 | 99精品久久99久久久久| 91精品视频国产| 日韩成人免费看| 国产免费观看高清视频| 欧美国产激情| 亚洲免费久久| 黑丝美女一区二区| 国产视频99| 日韩一二三区| 成人在线国产精品| 岛国精品在线| 日韩免费精品视频| 国产美女精品写真福利视频| 萌白酱国产一区二区| 色大18成网站www在线观看| 亚洲美女动态图120秒| 黄片毛片在线看| 日韩丝袜美女视频| 国产又大又黄又爽| 3751色影院一区二区三区| 久久久久久av无码免费看大片| 精品高清美女精品国产区| 国产在线视频99| 亚洲综合av网| 久久免费小视频| 一区二区三区日韩欧美精品| 久久免费看少妇高潮v片特黄| 国产精品美女一区二区| 貂蝉被到爽流白浆在线观看| 国产欧美日韩综合精品一区二区| 中文字幕国产专区| 久久久久久99久久久精品网站| 亚洲成av人片在线观看无| 成人精品gif动图一区| 中文字幕一区二区三区乱码不卡| 国产成人福利片| 丰满岳乱妇一区二区 | 免费在线观看你懂的| 91丝袜国产在线播放| 国产全是老熟女太爽了| 久久久久免费观看| 午夜精产品一区二区在线观看的| 国产亚洲欧美日韩在线一区| 五月天综合视频| 国产精品乱码人人做人人爱 | 国产小视频在线| 伊人久久久久久久久久| 日韩在线资源| 欧美大尺度在线观看| √最新版天堂资源网在线| 午夜精品久久17c| 伊人久久视频| 国产精品久久久久久久av电影| 国精品产品一区| 91视频婷婷| 日韩一级电影| 亚洲国产精品一区二区第一页 | 中文字幕一区二区在线观看| 男女性高潮免费网站| 亚洲777理论| 东京热一区二区三区四区| 欧美日韩亚洲综合一区| 精品国精品国产自在久不卡| 日韩禁在线播放| 1024国产在线| 久久免费视频在线| 欧美精品高清| 亚洲a级在线观看| 欧美色图五月天| 在线成人性视频| 99国内精品| 午夜剧场高清版免费观看 | 欧美日韩精品欧美日韩精品一综合| 国产精品无码AV| 日韩av一区二区在线| 日本在线观看视频| 隔壁老王国产在线精品| 99久久综合国产精品二区| 成人黄视频免费| 日本激情一区| 日韩xxxx视频| 久久99国产精品久久99| 大乳护士喂奶hd| 中文字幕一区二区三区不卡| 天天操天天爽天天干| 7777精品伊人久久久大香线蕉的 | av资源网一区| 美女福利视频网| 黄色一区二区在线| 国产原创中文av| 亚洲色在线视频| 岛国毛片av在线| 91理论片午午论夜理片久久| 一区二区三区日本久久久| 欧美精品久久96人妻无码| 免播放器亚洲| 又黄又色的网站| 成人欧美一区二区三区视频网页| 影音先锋亚洲天堂| 日韩欧美在线一区二区三区| h视频网站在线观看| 8050国产精品久久久久久| 国产美女亚洲精品7777| 视频一区视频二区视频| 亚洲少妇自拍| 国产精品成人99一区无码| 亚洲精品久久7777| 一级爱爱免费视频| 亚洲天堂av在线免费观看| 超碰在线资源| 99在线影院| 欧美1区2区3区| 自拍偷拍一区二区三区四区| 国产亚洲欧美日韩在线一区| 免费观看成人毛片| 亚洲国产精品电影在线观看| 性欧美ⅴideo另类hd| 成人亚洲激情网| 天天天综合网| 国产一级片自拍| 国产精品理论片| 亚洲天堂手机在线| 中文字幕精品一区二区精品| 国产精品高清乱码在线观看| 久久久com| 亚洲欧美成人| 色欲av无码一区二区三区| 精品国产乱码久久久久久天美| 免费a级片在线观看| 欧美激情一区二区三区在线视频观看| 国产色99精品9i| 日韩中文在线字幕| 国内精品在线播放| 男人的天堂久久久| 日韩一区二区三区四区| 日本不卡影院| 国产一区二区不卡视频在线观看 | 亚洲国产精品三区| 久久久久久综合| 中文字幕一区二区人妻痴汉电车| 永久免费毛片在线播放不卡| 成人精品国产亚洲| 一区二区视频国产| 国产一区二区精品久久| 国产免费无码一区二区视频 | 波多野吉衣在线视频| 亚洲最大成人网4388xx| 隣の若妻さん波多野结衣| 久久欧美在线电影| 色天下一区二区三区| 日韩精品无码一区二区三区免费| 欧美激情一区二区三区不卡| 中文字幕人妻一区二区在线视频| 日韩在线观看成人| 亚洲一区二区三区日本久久九| 国产96在线 | 亚洲| 国产亚洲精品资源在线26u| 在线免费一级片| 久久777国产线看观看精品| 精品欧美午夜寂寞影院| 国产成人精品无码播放| 日韩久久一区二区| 欧美一级特黄aaaaaa大片在线观看| 91超碰caoporn97人人| 日韩在线观看一区| 9191在线视频| 色悠悠久久综合| 黄视频在线观看网站| 国产三区二区一区久久| 美腿丝袜一区二区三区| 久久这里只有精品国产| 亚洲欧美国产另类| 91麻豆精品国产91久久久更新资源速度超快| 成人av在线播放观看| 久久精品欧美日韩| 精品人妻无码一区二区| 欧美亚洲国产视频小说| 久久人人99| 久久午夜夜伦鲁鲁片| 在线综合视频播放| 亚洲精品一区| 中文字幕在线中文| 国产午夜精品一区二区| 亚洲精品久久久久久无码色欲四季 | 国产精品成人国产乱| 亚洲午夜未删减在线观看| 亚洲电影一区| 中文字幕22页| 色综合天天综合色综合av|