python linux log,linux,python 常用的处理log的命令
一般的log文件都是需要過濾
ps:管道符| 管道符前面的輸出值
grep 過濾查找
將是error的log過濾顯示
grep '221.2.100.138' ?web.access.log
grep 221.2.100.138 ?web.access.log
less?web.access.log?|grep "221.2.100.138"
統計error行數
grep '221.2.100.138' web.access.log |wc -l
less?web.access.log?|grep "221.2.100.138"?|wc -l( 小寫)
將error重定向(linux是>python是>>)到文件中
grep 221.2.100.138 ?web.access.log >mylog1.txt
其他常用參數,位置放在前面后面都可以
-i? 不區分大小寫?grep -i 'HTTP' ?web.access.log或者grep ?'HTTP' -i web.access.log
-n ? ? ?輸出行號
-w ? ?匹配整個單詞
正則 ? grep '^#'
-c ? ?統計行數
sed 行篩選
顯示第一行
sed -n '1p' filename
顯示第1,5行
sed -n '1,5p' filename
常用選項:???????-n∶不使用的時候,會把所有數據都顯示出來,但如果加上 -n 參數后,只顯示經過處理的那幾行
-e∶直接在指令列模式上進行 sed 的動作編輯;
-f∶直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作;
-r∶sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法)
-i∶直接修改讀取的檔案內容,而不是由螢幕輸出。
常用命令:
a?? ∶新增, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
c?? ∶取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!
d?? ∶刪除,因為是刪除啊,所以 d 后面通常不接任何咚咚;
i?? ∶插入, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p?∶列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~
s
命令是直接使用,參數是-一起使用
格式:
sed '/模式/' d filename或者sed '/模式d/' filename都可以。刪除查詢條件為模式的行
eg:刪除以#開頭的行,并將修改寫入文件
sed '/^#/' d -i filename
如果不加-i是顯示在屏幕上,這時候可以把結果重定向到文件中
sed '/^#/' d filename>filename_new 覆蓋寫入w
sed '/^#/' d -i filename>>filename_new追加寫入aw
sed -n '/2015:08:39:59/,/2015:08:40:02/' p web.access.log 打印出這個時間段的log,p是打印的意思
sed -n '/2015:08:39:59/,/2015:08:40:02/' web.access.log |awk '{print $4,$5}'
awk分列
語法awk '{print $1}'打印第一列
awk -F : '{print $1}' 以:為分隔符打印出第一列 比如每行的數據格式是aa:bb,執行以后會取到aa,要想這個時候取值aa和bb,執行awk -F :'{print $1,$2}'
awk '{if(表達式){語句}}'
(1) ? ? ?awk '{print}' 打印所有列
(2)打印第一行的所有數據 awk 'NR==1{print}'
(3)打印第二行第一列 ? ? ? awk 'NR==2{print $1}'
grep '106.39.249.119' web.access.log | awk '{print $1,$2}' 打印出含有106這個ip地址的第一列和第二列
awk ?'{if($1=="106.39.241.119"){print $1,$2}}' web.access.log 打印出ip地址是106的第一列和第二列
awk '$1=="106.39.249.119" {print $1,$2}' web.access.log同上
其他組合用法
1.統計wc
統計行數(line)?|wc -l ? ? ? ? ?more filename|wc -l或者wc -l filename
統計單詞數(word)|wc -w
統計字符數?|wc -c (bytes)
2.排序sort 經常與|管道符使用
|sort -n 按照數字進行排序,不加,會出現1后面是10這種排序
|sort -nr 反序reverse排序
3.去重uniq
經常與管道符結合使用|
|uniq -c 將該重復的數據的行數統計出 ?一般在uniq -c|sort -n使用,因為uniq會把數字統計出來,然后sort -n按照數字進行排序
|uniq -d 只顯示重復的行
|uniq -u 只顯示不重復的行
例子:
統計出訪問日志中有多少個不同的ip
awk '{print $1}' web.access.log |sort|uniq -c|wc -l
統計訪問最高的ip
cat access.log|awk '{print $2}'|uniq -c|sort -nr|head -n 1
或者
cat acess.log|awk '{print $2}'|uniq -c|sort -nr|sed '1p'
字符轉換tr,以下轉換不會對源文件進行操作
tr '#' '!' 把#全部轉換成!
cat a.log |tr 'a-z' ?'A-Z'
【2016-10-11】Linux系統常用的關機或重啟命令shutdown、reboot、halt、poweroff、init 0及init 6的聯系與區別
Linux下常用的關機/重啟命令一般包括: shutdown.reboot.halt.poweroff等,當然了我們可以使用init 運行等級runlevel 0即halt來關機,或使用init 運行 ...
Linux中常用的查看系統信息的命令
導讀 Linux是一個神奇而又高效的操作系統,學完Linux對Linux系統有一個熟悉的了解后,你需要了解下這些實用的查看系統信息的命令. 查看系統版本命令 uname 談到系統版本就一定會想到una ...
linux不常用但很有用的命令(持續完善)
Linux登錄后設置提示信息: /etc/issue 本地端登錄前顯示信息文件 /etc/issue.net 網絡端登錄前顯示信息文件 /etc/motd 登陸后顯示信息文件 可以添加以下幾個常用選項 ...
Linux下常用的硬件信息查看命令
1.查看CPU型號,這里為了方便查看結合管道符用grep進行了匹配,當然只需要前面的命令也可以,命令如下: cat /proc/cpuinfo | grep "model name" ...
Linux中常用的查找文件的命令
我們經常在linux要查找某個文件,但不知道放在哪里了,可以使用下面的一些命令來搜索.這些是從網上找到的資料(參考資料1),因為有時很長時間不會用到,當要用的時候經常弄混了,所以放到這里方便使用. w ...
Linux中常用的關機和重新啟動命令
hutdown.halt.reboot以及init,它們都可以達到關機和重新啟動的目的,但是每個命令的內部工作過程是不同的,下面將逐一進行介紹. 一.shutdown shutdown命令用于安全關閉 ...
Linux中常用來查看進程的命令PS
查看所有運行中的進程:ps aux | less 顯示所有進程: ps -A / ps -e 顯示進程的樹狀圖:pstree
linux系統常用監控系統狀態信息命令
[root@bogon ~]# uptime #平均負載 23:33:21 up 2:09, 3 users, load average: 0.02, 0.05, 0.05 [root@bogon ~ ...
linux中常用壓縮與解壓命令
一. tar文件的解壓 tar -xvf db.tar 二. zip文件的壓縮與解壓 壓縮 zip -r dest_name.zip directory_to_compress 解壓 unzip de ...
隨機推薦
POJ3083Catch That Cow[BFS]
Catch That Cow Time Limit:?2000MS ? Memory Limit:?65536K Total Submissions:?77420 ? Accepted:?24457 ...
ajax 之js讀取xml的多瀏覽器兼容
主要是分為兩大類:IE.其它瀏覽器 IE8以下只支持這種 InputVoltage.innerText =?xmlDoc.getElementsByTagName(id)[0].text, 其它瀏覽器 ...
jar包和war包的區別
jar包和war包的區別: jar包就是別人已經寫好的一些類,然后將這些類進行打包,你可以將這些jar包引入你的項目中,然后就可以直接使用這些jar包中的類和屬性了,這些jar包一般都會放在lib目錄 ...
【轉】iOS 宏(define)與常量(const)的正確使用-- 不錯
原文網址:http://www.jianshu.com/p/f83335e036b5 在iOS開發中,經常用到宏定義,或用const修飾一些數據類型,經常有開發者不知怎么正確使用,導致項目中亂用宏與c ...
關于JVM的ClassLoader(轉)
眾所周知,java是編譯型的語言,寫的是java文件,最后運行的是class文件,class文件是運行在JVM之中的,這時候就有一個問題,JVM如何裝載class文件的?是通過ClassLoader來 ...
POJ3660 Cow Contest floyd傳遞閉包
Description N?(1 ≤?N?≤ 100) cows, conveniently numbered 1..N, are participating in a programming con ...
June. 23rd 2018, Week 25th. Saturday
We are who we choose to be. 要成為怎樣的人,選擇在于自己. From Barry Manilow. I believe that we are who we choose ...
WebSocket——為Web應用帶來桌面應用般的靈活性【轉載+整理】
總結
以上是生活随笔為你收集整理的python linux log,linux,python 常用的处理log的命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql俩个表之间关联语法_MySQL
- 下一篇: linux 其他常用命令