精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

伊人久久噜噜噜躁狠狠躁| 成人精品福利| 亚洲自啪免费| 久久精品国产一区二区电影| 亚洲乱妇老熟女爽到高潮的片| 麻豆理论在线观看| 国产精品国产三级国产专播品爱网| 福利视频久久| 在线观看中文字幕码| 精品99视频| 日韩在线高清视频| 亚洲国产欧美视频| 精品中文视频| 91九色02白丝porn| 亚洲一区二区三区av无码| av在线电影院| 99国产精品久久久久久久久久 | 亚洲女人被黑人巨大进入al| 九九九九九国产| 美脚恋feet久草欧美| 亚洲精品v日韩精品| 无码免费一区二区三区免费播放 | 久久综合亚洲| 欧美mv日韩mv国产网站app| 污污动漫在线观看| av电影一区| 亚洲va欧美va人人爽午夜| 国产精品av免费| 国产裸舞福利在线视频合集| 成人激情文学综合网| 亚洲999一在线观看www| 欧美另类高清videos的特点| 一区二区三区导航| 国语自产偷拍精品视频偷| 四虎永久免费在线| 99精品视频在线观看免费播放| 亚洲精品永久免费精品| 先锋资源av在线| 风间由美中文字幕在线看视频国产欧美 | 国产suv精品一区二区三区| 国产欧美一区二区三区在线| 樱花视频在线免费观看| 噜噜噜久久亚洲精品国产品小说| 97婷婷大伊香蕉精品视频| 久久影院一区二区| 欧美日韩一区二区高清| 欧美成人免费全部观看天天性色| 少妇高潮惨叫久久久久| 日产精品一区二区| 日韩中文字幕视频在线观看| 国产三级短视频| 欧美色女视频| 日韩中文字幕国产| 美国一级片在线观看| 日韩精品二区| 久久精品一偷一偷国产| 日本天堂中文字幕| 欧美日韩国产探花| 国内精品国产三级国产在线专| 欧美日韩成人免费观看| 99精品国产在热久久下载| 91干在线观看| 波多野结衣在线观看视频| 青青国产91久久久久久| 国产一区视频在线| av网站在线免费看| 成人激情校园春色| 欧美一区二区视频在线| av电影在线播放高清免费观看| 国产精品高潮久久久久无| 中文字幕中文字幕一区三区| 性网站在线观看| 五月婷婷欧美视频| 亚洲男人天堂色| 日日夜夜亚洲| 亚洲第一页在线| 妺妺窝人体色WWW精品| 日韩免费av| 欧美国产在线视频| 久久精品视频7| 蜜桃视频第一区免费观看| 91一区二区三区| 天堂av中文在线资源库| 欧美高清在线视频| 粉嫩av一区二区三区天美传媒 | 日本中文字幕精品| 窝窝社区一区二区| 亚洲国产精华液网站w | 精品av中文字幕在线毛片| 日本一区二区三区久久久久久久久不 | 欧美人与性动交α欧美精品| 精品久久ai电影| 中文字幕日韩欧美在线| 国产一级片免费看| 日韩国产在线一| 91在线在线观看| 国产在线视频福利| 一二三区精品福利视频| 激情视频综合网| 一区二区三区四区精品视频| 亚洲毛片在线观看.| www.99re7| 久久性天堂网| 国产精品一区二区三区观看| www黄在线观看| 亚洲sss视频在线视频| 伊人成人222| 色88888久久久久久影院| 久久久av一区| 无码一区二区三区| www.日韩av| 色一情一乱一乱一区91| 欧洲精品一区二区三区| 亚洲国产精品字幕| 性色av无码久久一区二区三区| 免费一级欧美片在线播放| 国产精品久久久久av福利动漫| 最近高清中文在线字幕在线观看| 亚洲成人在线免费| 精品人妻一区二区三| 不卡在线一区| 日韩av高清不卡| 污视频网站免费观看| 国产电影一区在线| 亚洲国产日韩欧美| 在线日韩影院| 精品视频在线播放免| 国产一级黄色av| 国产久卡久卡久卡久卡视频精品| 亚洲国产一区二区精品视频 | av香蕉成人| 欧美日韩欧美一区二区| 欧美做受xxxxxⅹ性视频| 99riav1国产精品视频| 97超碰人人模人人爽人人看| 麻豆系列在线观看| 欧美日韩电影在线播放| 久久日免费视频| 日韩电影一区二区三区四区| 久久综合久久久| 成人免费短视频| 亚洲欧美国产精品| www毛片com| 国产亚洲一二三区| 日本va中文字幕| 国产调教一区二区三区| 国产精品igao视频| 国产三级电影在线观看| 欧美伊人久久大香线蕉综合69| 精品无人区无码乱码毛片国产| 午夜综合激情| 日本一区不卡| 欧美成人毛片| 久久成人一区二区| 国产a级免费视频| 亚洲综合色成人| 国产人妻黑人一区二区三区| 亚洲日产国产精品| 精品视频在线观看| 精品国产第一福利网站| 宅男66日本亚洲欧美视频| 伊人亚洲综合网| 亚洲视频图片小说| 欧美午夜小视频| 美女网站色精品尤物极品姐弟| 欧美亚洲国产另类| 黄色大片在线看| 欧美疯狂性受xxxxx喷水图片| 99久久99久久精品国产| 福利视频网站一区二区三区| 99视频在线免费播放| 国产精品亚洲二区| 国产在线久久久| 超碰在线97国产| 国产亚洲精品久久久久久牛牛| 怡春院在线视频| 一区二区三区在线视频观看 | 一区二区三区精彩视频| 亚洲精品高清在线观看| 日本丰满少妇裸体自慰| 久久草av在线| 日本国产在线播放| 久久精品国产68国产精品亚洲| 91在线视频精品| 美女91在线看| 日韩在线观看免费高清完整版| 亚洲国产精品国自产拍久久| 欧美午夜精品久久久久久久| 欧美风情第一页| 97se亚洲国产综合在线| 黄色永久免费网站| 在线成人欧美| 中日韩在线视频| 久久香蕉精品香蕉| 国产综合在线观看视频| 色在线免费观看| 蜜臀久久99精品久久久久久宅男 | 日本a在线免费观看| 精品国产一区二区三区噜噜噜| 成人av电影免费| 国产精品第一| 欧美综合国产精品久久丁香| 污影院在线观看| 中文字幕久精品免费视频| 日本高清视频www| 欧美日韩免费高清一区色橹橹| 久久久久亚洲av成人片| 国产精品色婷婷| 黄色国产在线观看| 成人精品视频一区二区三区尤物| 成人午夜激情av| 99人久久精品视频最新地址| 国产日韩第一页| 精品盗摄女厕tp美女嘘嘘| 国产精品av一区| 日韩精品成人| 成人免费黄色网| 国产成人福利夜色影视| 欧美亚洲成人精品| 国产在线精彩视频| 欧美高清电影在线看| 欧美激情黑人| 在线观看亚洲视频| 欧美日韩免费做爰大片| 亚洲精品国产精品久久清纯直播| 国内精品久久久久久久久久久 | 老熟妇高潮一区二区高清视频| 欧美日韩国产色站一区二区三区| 亚洲精品成人在线视频| 精品久久久久久久中文字幕| 久久精品女人毛片国产| 亚洲三级在线播放| www.xxxx日本| 亚洲天堂精品在线观看| 99精品中文字幕| 国产精品素人一区二区| 污污视频网站在线免费观看| 国产欧美日韩激情| 欧美激情视频二区| 国产精品久久免费看| 最新日韩免费视频| 国产精品福利影院| 国产一区第一页| 亚洲日本韩国一区| 99久久99久久精品国产| 一区二区三区视频在线看| 激情五月婷婷在线| 亚洲成在线观看| 国产一级做a爱片久久毛片a| 欧美日韩在线免费| 国产男人搡女人免费视频| 欧美午夜精品理论片a级按摩| 最新中文字幕免费| 欧美日韩电影在线播放| 国产99久久九九精品无码免费| 欧美一区二区高清| 国产综合无码一区二区色蜜蜜| 亚洲精品在线电影| 日本一卡二卡四卡精品| 亚洲欧美一区二区三区久久| 毛片网站在线观看| 日韩中文字幕视频| 蜜臀av在线| 97色在线观看免费视频| 国精产品一区一区三区四川| 国产主播喷水一区二区| 视频在线观看免费影院欧美meiju 视频一区中文字幕精品 | 亚洲男女自偷自拍图片另类| 国产福利小视频在线观看| 中文字幕亚洲无线码在线一区| 毛片在线视频| 久久琪琪电影院| 福利精品一区| 成人自拍爱视频| 久久99免费视频| 在线观看视频黄色| 1024成人| 在线观看亚洲色图| 成人一级片在线观看| 受虐m奴xxx在线观看| 亚洲欧美日韩中文播放| 日韩精品久久久久久久酒店| 欧亚一区二区三区| 亚洲不卡免费视频| 亚洲欧美三级伦理| a天堂中文在线官网在线| 欧美一级大片在线观看| a一区二区三区亚洲| 精品国产一区二区三区四区vr| 波多野结衣在线观看一区二区| 欧美一级中文字幕| 视频一区视频二区中文| 国产麻豆剧传媒精品国产| 久久久久久一二三区| 一区二区在线观看免费视频| 色乱码一区二区三区88 | 亚洲男人天天操| 在线视频中文字幕第一页| 日韩暖暖在线视频| 都市激情亚洲| 国产美女视频免费| 日本成人中文字幕| 中文在线永久免费观看| 日韩码欧中文字| 精品国产乱子伦| 亚洲精品一线二线三线| 精产国品自在线www| 日本成人在线视频网址| 1204国产成人精品视频| 黄瓜视频免费观看在线观看www | 欧美专区国产专区| 亚洲视频精选| 热这里只有精品| 蜜臀a∨国产成人精品| 在线观看国产免费视频| 一区二区三区国产精品| 中文字幕日日夜夜| 国产一区二区三区毛片| 自拍偷拍亚洲视频| 国产精品入口免费| 午夜日韩在线| 污污视频在线免费| 中文字幕一区在线观看| 国产精品午夜一区二区| 亚洲欧美综合图区| 日本黄色免费在线| 国产综合第一页| 亚洲精品人人| 美女露出粉嫩尿囗让男人桶| 亚洲精品菠萝久久久久久久| 国产精品久久欧美久久一区| 中文字幕9999| 成人h在线观看| 亚洲免费在线精品一区| 青草国产精品久久久久久| 亚洲精品视频久久久| 欧美视频在线观看免费| 婷婷综合激情网| 456亚洲影院| 亚洲资源网你懂的| 久久久久久久久久久久久久国产| 97se亚洲国产综合自在线| 国产成人免费看| 亚洲精选在线观看| 偷拍精品精品一区二区三区| 欧美一区观看| 美女一区二区久久| 久久精品日韩无码| 555www色欧美视频| 日本不卡在线| 2022国产精品| 亚洲精华国产欧美| 国产乱了高清露脸对白| 色综合视频一区二区三区高清| 免费人成在线观看网站| 国产精品视频一区二区三区四| 国产精品二区不卡| 三级黄色片播放| 午夜电影网一区| 国产69久久| 成人在线一区二区| 激情av一区| 三上悠亚ssⅰn939无码播放 | 亚洲第九十九页| 97av在线视频| 欧美在线免费看视频| 婷婷激情5月天| 亚洲成a人在线观看| 飘雪影视在线观看免费观看| 国产精品第二页| 牛夜精品久久久久久久99黑人| 蜜臀av粉嫩av懂色av| 色成人在线视频| 免费黄色网址在线观看| 国产高清自拍99| 久久看片网站| 精品欧美一区二区久久久久| 日韩精品在线免费观看视频| 欧美成人一二区| 国精产品一区一区三区视频| 国产欧美日韩在线看| 性猛交xxxx乱大交孕妇印度| 日韩av电影免费观看高清| 一区二区在线影院| 欧美做受喷浆在线观看| 91精品国产入口| 日本在线高清| 9色视频在线观看| 久久久影视传媒| av免费观看网址| 日本一欧美一欧美一亚洲视频| 一本一道久久综合狠狠老| 国产精品300页| 日韩欧美高清在线| 播放一区二区| www.射射射| 亚洲精品一二三| yw视频在线观看| 欧美xxxx黑人又粗又长精品| 国产一区二区精品久久99|