日志查看技巧之篩選[linux命令集]
來自: http://www.cnblogs.com/yougewe/p/5173635.html
引語:相信大家都會偶爾遇到要排查問題發生的原因的情況,那這種時候,我們最有力后盾就是日志文件了,所以謹記日志記錄真的很重要。但是日志文件往往是很大的文件,而且里面有太多的東西可能不是我們需要的,如無數重復行。如果能夠有效篩選出對我們有意義的記錄,那就太方便了!下面,就記錄一些我篩選日志的一些技巧,供自己和部分需要的新手朋友參考!(高能勿噴,歡迎留下你的高見)主要使用awk命令進行篩選!
原始日志php_error.log如下:
[21-Nov-2015 11:10:14 UTC] PHP Warning: PHP Startup: in Unknown on line 0 [21-Nov-2015 11:39:48 UTC] PHP Notice: Undefined index: HTTP_RAW_POST_DATA in E:\wamp\www\htdocs\wx_receiver.php on line 39
重定向輸出相關(這個很重要,因為所有打印出來的,你不可能看得完,導出到其他地方后慢慢分析才是硬道理):
$ echo "hello,world!" > out.log #直接輸出到 $ echo "hello,world!" >> out.log #以添加的形式輸出到 $ echo "ssss!" >> out.log 2>&1 #指定錯誤級別輸出到
篩選含有warning的記錄:
$ awk '/Warning/' php_error.log $ awk '{if($0 ~ /Warning/)print $0;}' php_error.log #完整寫法
篩選含Warning后面出現Startup的記錄:
$ awk '/Warning.*?Startup/' php_error.log $ awk '{if($0 ~ /Warning.*?Startup/)print $0;}' php_error.log #完整寫法
其他類似情況,請詳細理解正則表達式寫法。
原始日志mysql_error.log如下:
[2015-12-20 20:45:51] Error in Mysql::fetch E:\wamp\www\includes\class\db.cls.php on line 149 E:\wamp\www\htdocs\pp\system\Model.cls.php on line 44 E:\wamp\www\htdocs\pp\controllers\admin\ScoreController.cls.php on line 56 E:\wamp\www\htdocs\pp\system\Application.cls.php on line 72 E:\wamp\www\htdocs\pp\system\Application.cls.php on line 49 E:\wamp\www\htdocs\pp\index.php on line 19[2015-12-20 20:45:51] mysql_errno: 1054 mysql_error: Unknown column 'score_rule' in 'field list' E:\wamp\www\includes\class\db.cls.php on line 64 E:\wamp\www\htdocs\pp\system\Model.cls.php on line 43 E:\wamp\www\htdocs\pp\controllers\admin\SeController.cls.php on line 86 E:\wamp\www\htdocs\pp\system\Application.cls.php on line 72 E:\wamp\www\htdocs\pp\system\Application.cls.php on line 49 E:\wamp\www\htdocs\pp\index.php on line 19</pre>
去除相同行(時間除外),并帶時間行數打印出:
$ awk '{if($1 ~ /^\[[[:digit:]]{4}-/){t=$0;}else{if(!a[$0]++)print NR, " ===> ", t, " ", $0;}}' mysql_error.log直接查看原始mysql-bin-log日志(binlog是二進制文件,查看不了,需借助mysqlbinlog工具):
$ mysqlbinlog mysql-bin-log.000038 > out.log 2>&1對于字符一類的處理,awk,sed等命令是相當方便的,適當運用一下,對于工作還是挺方便的。但是這種東西用多了,往往在windows的工具下,也有這種操作的想法,但是絕對沒有這么方便,可以使用一些簡單的正則進行匹配一些字符,也還是提高查找速度的!
正則,好東西!
注意各個語言的具體描述,可能不同!
</div>