Linux日志分類
在Linux系統中,有三個主要的日志子系統:
連接時間日志
由多個程序執行,把記錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
進程統計日志
進程統計日志由系統內核執行。當一個進程終止時,為每個進程往進程統計文件(pacct或acct)中寫一個記錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤日志
錯誤日志由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日志。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日志。
使用linux查看日志排除bug是不少開發和測試人員的必備技能,為了更好的使用,所以百度結合自己經驗總結一下常用的日志查看部分相關命令。大家可以隨時更新提出質疑一同進步。
一、常用命令
tail head cat tac less more
-
tail:
n 是顯示行號相當於nl命令 tail -100f test.log 實時監控100行日志 tail -n 10 test.log 查詢日志尾部最后10行的日志; tail -n +10 test.log 查詢10行之后的所有日志;
-
head
跟tail是相反的head是看前多少行日志 head -n 10 test.log 查詢日志文件中的頭10行日志; head -n -10 test.log 查詢日志文件除了最后10行的其他所有日志;
-
cat
tac是倒序查看是cat單詞反寫 cat -n test.log |grep "debug" 查詢關鍵字的日志
-
more
是將文件從第一行開始,根據輸出窗口的大小,適當的輸出文件內容。當一頁無法全部輸出時,可以用“回車鍵”向下翻行,用“空格鍵”向下翻頁。退出查看頁面,請按“q”鍵。另外,more還可以配合管道符“|”(pipe)使用,例如:ls -al | more more的語法:more 文件名 Enter 向下n行,需要定義,默認為1行 Ctrl f 向下滾動一屏 空格鍵 向下滾動一屏 Ctrl b 返回上一屏 = 輸出當前行的行號 :f 輸出文件名和當前行的行號 v 調用vi編輯器 ! 命令 調用Shell,並執行命令 q 退出more
-
less
less與more類似,使用less可以隨意瀏覽文件,而more僅能向前移動,不能向后移動,而且 less 在查看之前不會加載整個文件。 less log2013.log 查看文件 ps -ef | less ps查看進程信息並通過less分頁顯示 history | less 查看命令歷史使用記錄並通過less分頁顯示 less log2013.log log2014.log 瀏覽多個文件 常用命令參數: -b <緩沖區大小> 設置緩沖區的大小 -g 只標志最后搜索的關鍵詞 -i 忽略搜索時的大小寫 -m 顯示類似more命令的百分比 -N 顯示每行的行號 -o <文件名> 將less 輸出的內容在指定文件中保存起來 -Q 不使用警告音 -s 顯示連續空行為一行 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重復前一個搜索(與 / 或 ? 有關) N:反向重復前一個搜索(與 / 或 ? 有關) b 向后翻一頁 h 顯示幫助界面 q 退出less 命令
在 less 查看日志文件時: 一般流程是: cd /opt/logs export LANG=zh_cn.utf-8 有時候使用less命令會發現亂碼時使用 locale可查看當前設置 less -mns newecc-all.log-2018-05-28 顯示行號百分比和空行會比較直觀 按g到 第一行 shift + g 跳轉到最后一頁 ? 和 / 后面加檢索內容都可以進行當前文本關鍵字的查找 shift+n/n 分別是向下/上查詢此關 鍵字內容