1. linux查看日誌的實用方法
作為一名測試工程師,測試任務中和Linux打交道的地方有很多,比如查看日誌、定位bug、修改文件、部署環境等。產品部署在Linux上,如果某個功能發生錯誤,就需要我們去排查出錯的原因,所以熟練的掌握查看log的方法顯得尤為重要。
談到查看log的方法,最常使用的命令可以說是cat與more及less了,但是如果查看一個很大的文件,並且只想看到該文件最後幾行的結果輸出時,你還記得用什麼嗎?對了,就是tail,此外tac也可以達到這個目的。接下來文章將通過實例來講解各個查看日誌的命令。
想要直接查看一個文件的內容,可以使用cat/tac/nl命令行。
在一般情況下,使用[tab]與空格鍵的效果差不多,都是一堆空白,無法區分出兩者,但是如果使用cat -A 就能夠發現空白的地方到底是什麼,其中[tab]是以^I表示,換行符則是以$表示。當文件內容的行數超過40行以上時,根本來不及在屏幕上看到結果。所以cat配合less或者more是不錯的選擇。
nl可以將輸出的文件內容自動地加上行號,其默認的結果與cat -n不太一樣,nl可以將行號做比較多的顯示設計,包括位數與是否自動補齊0等的功能。
想要一頁一頁的查看文件的內容,可以使用more和less命令。
對比less和more,less的用法更加的靈活,more的缺點是沒有辦法向前翻頁,只能往後翻,但是less既能往後翻也能往前翻頁。
如果只想關注日誌內容的前一段或者最後一段的內容,使用head/tail。
幾種查看log的方式總結的也差不多了,想要熟練的使用還需要多練。
2. Linux系統日誌怎麼查看
1. 前言
在Linux日常管理中,我們肯定有查看某些服務的日誌需求,或者是系統本身的日誌。本文主要介紹如何查看Linux的系統日誌,包括文件的路徑、工具的使用等等。會看Linux日誌是非常重要的,不僅在日常操作中可以迅速排錯,也可以快速的定位。
2. 如何查看Linux日誌
Linux日誌文件的路徑一般位於,/var/log/,比如ngix的日誌路徑為/var/log/nginx/,如果要查看某服務的日誌,還可以使用systemctl status xxx,比如查看ssh服務的壯態,systemctl status sshd
查看Linux某服務的日誌
Liunx的配置文件在/etc/rsyslog.d里,可以看到如下信息
在linux系統當中,有三個主要的日誌子系統:
1、連接時間日誌:由多個程序執行,把記錄寫入到/var/log/wtmp和/var/run/utmp,
login等程序會更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
2、進程統計:由系統內核執行,當一個進程終止時,為每個進程往進程統計文件中寫一個記錄。進程統計的目的是為系統中的基本服務提供命令使用統計
3、錯誤日誌:由rsyslogd守護程序執行,各種系統守護進程、用戶程序和內核通過rsyslogd守護程序向文件/var/log/messages報告值得注意的時間。另外有許多linux程序創建日誌,像HTTP和FTP這樣提供的伺服器也保持詳細的日誌。
4、其他日誌……
查看Linux日誌默認路徑
可以看到在/var/log目錄下存在很多的日誌文件,接下來就對裡面的一些常用日誌文件進行分析
主要日誌文件介紹:
內核及公共消息日誌:/var/log/messages
計劃任務日誌:/var/log/cron
系統引導日誌:/var/log/dmesg
郵件系統日誌:/var/log/maillog
用戶登錄日誌:/var/log/lastlog
/var/log/boot.log(記錄系統在引導過程中發生的時間)
/var/log/secure (用戶驗證相關的安全性事件)
/var/log/wtmp(當前登錄用戶詳細信息)
/var/log/btmp(記錄失敗的的記錄)
/var/run/utmp(用戶登錄、注銷及系統開、關等事件)
日誌文件詳細介紹:
/var/log/secure
Linux系統安全日誌,記錄用戶和工作組的情況、用戶登陸認證情況
例子:我創建了一個zcwyou的用戶,然後改變了該用戶的密碼,於是該信息就被記錄到該日誌下
Linux系統安全日誌默認路徑
該日誌就詳細的記錄了我操作的過程。
內核及公共信息日誌,是許多進程日誌文件的匯總,從該文件中可以看出系統任何變化
查看Linux內核及公共信息日誌
系統引導日誌
該日誌使用dmesg命令快速查看最後一次系統引導的引導日誌
查看Linux系統系統引導日誌
最近的用戶登錄事件,一般記錄最後一次的登錄事件
該日誌不能用諸如cat、tail等查看,因為該日誌裡面是二進制文件,可以用lastlog命令查看,它根據UID排序顯示登錄名、埠號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示 Never logged。
該日誌文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件。該日誌為二進制文件,不能用諸如tail/cat/等命令,使用last命令查看。
記錄郵件的收發
此文件是記錄錯誤登錄的日誌,可以記錄有人使用暴力破解ssh服務的日誌。該文件用lastb打開
該日誌記錄當前用戶登錄的情況,不會永久保存記錄。可以用who/w命令來查看
3. 常用的日誌分析工具與使用方法
3.1 統計一個文本中包含字元個數
3.2 查看當天訪問排行前10的url
3.3 查看apache的進程數
3.4 訪問量前10的IP
cut部分表示取第1列即IP列,取第4列則為URL的訪問量
3.5 查看最耗時的頁面
按第2列響應時間逆序排序
3.6 使用grep查找文件中指定字元出現的次數
-o 指示grep顯示所有匹配的地方,並且每一個匹配單獨一行輸出。這樣只要統計輸出的行數就可以知道這個字元出現的次數了。
4. 總結
查看Linux日誌需求了解和熟悉使用一些常用的工具方能提升我們的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日誌和使用 Rsyslog 和 AWK 過濾等等,只要能掌握這些工具。我們才能高效地處理和定位故障點。
https://www.linuxrumen.com/rmxx/647.html
3. linux下如何查看log文件
日誌文件夾的默認存儲路徑是:/var/log
下面是幾個重要的日誌文件:
/var/log/messages:包括整體回系統信息,其中答也包含系統啟動期間的日誌。此外,還包括mail,cron,daemon,kern和auth等內容。
/var/log/syslog:它和/etc/log/messages日誌文件不同,它只記錄警告信息,常常是系統出問題的信息。
/var/log/user.log:記錄所有等級用戶信息的日誌。
/var/log/auth.log:包含系統授權信息,包括用戶登錄和使用的許可權機制等。
日誌是一種文本文件,因此可以使用查看文本文件的命令來查看日誌。
cat /var/log/messages 查詢日誌的全部內容
head -5 /var/log/messages 查詢日誌的前5行
tail -5 /var/log/messages 查詢日誌的最新5行
sed -n '5,10p' /var/log/messages 查詢日誌的5到10行
4. linux的log文件怎麼打開
cat xxx.logx0dx0aless xxx.logx0dx0amore xxx.logx0dx0a以上三個命令用於查看,less比較好用,可上下自由翻頁x0dx0avi xxx.logx0dx0avim xxx.logx0dx0a以上兩個命令可用於編輯,按回車後,按i或a可進入編輯模式,編輯完後,按ESC然後輸入:x保存並退出。x0dx0ax0dx0a如果你是Gnome桌面環境,還可以直接雙擊,然後自由編輯,和window記事本操作基本一致。
5. 如何實時查看linux下的日誌
Linux日誌文件在/var/log目錄下,可以通過命令查看日誌文件。
1,cat messages可以查看某個日誌文件。
2,要達到實時更新,可以通過tail命令查看更新的數據,例如tail -f messages。
3,tail命令參數:
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的位元組數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在進程ID,PID死掉之後結束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒。
6. 如何實時查看linux下的日誌
1.如下圖所示,先cd到我們需要監控的日誌目錄。
(6)linux實時查看log文件擴展閱讀:
Linux完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
Linux支持多種平台
Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
7. 如何查看linux的系統log日誌
可以直接用Vim打開日誌文件查看,系統日誌文件一般是/var/log/secure、/var/log/messages、/var/log/lastlog等文件,不過日誌文件數據很分散,一般都是編寫一個shell腳本分析日誌文件,並且加入任務計劃每天自動分析,這樣的shell腳本在一些論壇上可以下載的到的;或者是用專門的日誌文件分析工具軟體,這樣的軟體是比較多的,比如logwatch。
8. 如何實時查看linux下的日誌
日誌文件的默認路徑是:/var/log
Linux系統中有需要用於查看文本內容的命令,但其中每個命令又都有自己的特色特點,比如這個cat命令就是用於查看比較精簡的文本內容的。這個其實是最好記的命令之一,cat在英語中是貓的意思.
cat /var/log/*.log
如果日誌在更新,如何實時查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會直接返回命令行,而是實時列印日誌文件中新增加的內容,這一特性,對於查看日誌是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
在Linux系統中,有三個主要的日誌子系統:
連接時間日誌--由多個程序執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
進程統計--由系統內核執行。當一個進程終止時,為每個進程往進程統計文件(pacct或acct)中寫一個紀錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤日誌--由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日誌。像HTTP和FTP這樣提供網路服務的伺服器也保持詳細的日誌。
常用的日誌文件如下:
access-log 紀錄HTTP/web的傳輸
acct/pacct 紀錄用戶命令
aculog 紀錄MODEM的活動
btmp紀錄失敗的紀錄
lastlog紀錄最近幾次成功登錄的事件和最後一次不成功的登錄
messages從syslog中記錄信息(有的鏈接到syslog文件)系統啟動後的信息和錯誤日誌,是Red Hat Linux中最常用的日誌之一
sudolog 紀錄使用sudo發出的命令
sulog 紀錄使用su命令的使用
syslog 從syslog中記錄信息(通常鏈接到messages文件)
utmp紀錄當前登錄的每個用戶
wtmp一個用戶每次登錄進入和退出時間的永久紀錄
xferlog 紀錄FTP會話
/var/log/secure linuxprobe/com/chapter-02/html與安全相關的日誌信息
/var/log/maillog 與郵件相關的日誌信息
/var/log/cron 與定時任務相關的日誌信息
/var/log/spooler 與UUCP和news設備相關的日誌信息
/var/log/boot.log 守護進程啟動和停止相關的日誌消息
utmp、wtmp和lastlog日誌文件是多數重用UNIX日誌子系統的關鍵--保持用戶登錄進入和退出的紀錄。有關當前登錄用戶的信息記 錄在文件utmp中;登錄進入和退出紀錄在文件wtmp中;最後一次登錄文件可以用lastlog命令察看。數據交換、關機和重起也記錄在wtmp文件 中。所有的紀錄都包含時間戳。這些文件(lastlog通常不大)在具有大量用戶的系統中增長十分迅速。例如wtmp文件可以無限增長,除非定期截取。許 多系統以一天或者一周為單位把wtmp配置成循環使用。它通常由cron運行的腳本來修改。這些腳本重新命名並循環使用wtmp文件。通常,wtmp在第 一天結束後命名為wtmp.1;第二天後wtmp.1變為wtmp.2等等,直到wtmp.7。
每次有一個用戶登錄時,login程序在文件lastlog中察看用戶的UID。如果找到了,則把用戶上次登錄、退出時間和主機名寫到標准輸出中,然 後login程序在lastlog中紀錄新的登錄時間。在新的lastlog紀錄寫入後,utmp文件打開並插入用戶的utmp紀錄。該紀錄一直用到用戶 登錄退出時刪除。utmp文件被各種命令文件使用,包括who、w、users和finger。
下一步,login程序打開文件wtmp附加用戶的utmp紀錄。當用戶登錄退出時,具有更新時間戳的同一utmp紀錄附加到文件中。wtmp文件被程序last和ac使用。
具體命令
wtmp和utmp文件都是二進制文件,他們不能被諸如tail命令剪貼或合並(使用cat命令)。用戶需要使用who、w、users、last和ac來使用這兩個文件包含的信息。
who:who命令查詢utmp文件並報告當前登錄的每個用戶。Who的預設輸出包括用戶名、終端類型、登錄日期及遠程主機。例如:who(回車)顯示
chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15
如果指明了wtmp文件名,則who命令查詢所有以前的紀錄。命令who /var/log/wtmp將報告自從wtmp文件創建或刪改以來的每一次登錄。
w:w命令查詢utmp文件並顯示當前系統中每個用戶和它所運行的進程信息。例如:w(回車)顯示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27。
USER TTYFROM LOGIN@ IDLE JCPU PCPUWHAT
chyang pts/0 202.38.68.2423:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w
lewis pts/3 202.38.64.2331:55pm 30:39 0.27s 0.22s -bash
lewis pts/4 202.38.64.2331:35pm 6.00s 4.03s 0.01s sh /home/users/
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail
yloupts/8 202.38.64.2352:15pm 1:09m 0.10s 0.04s-bash
users:users用單獨的一行列印出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數。例如:users(回車)顯示:chyang lewis lewis ylou ynguo ynguo
last:last命令往回搜索wtmp來顯示自從文件第一次創建以來登錄過的用戶。例如:
chyang pts/9202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfanpts/6202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)
如果指明了用戶,那麼last只報告該用戶的近期活動,例如:last ynguo(回車)顯示:
ynguopts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguopts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguopts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguopts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
ynguopts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)
ynguopts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)
ynguopts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)
ac:ac命令根據當前的/var/log/wtmp文件中的登錄進入和退出來報告用戶連結的時間(小時),如果不使用標志,則報告總的時間。例如:ac(回車)顯示:total 5177.47
ac -d(回車)顯示每天的總的連結時間
Aug 12 total 261.87
Aug 13 total 351.39
Aug 14 total 396.09
Aug 15 total 462.63
Aug 16 total 270.45
Aug 17 total 104.29
Today total 179.00
ac -p (回車)顯示每個用戶的總的連接時間
ynguo 193.23
yucao 3.35
rong 133.40
hdai 10.52
zjzhu 52.87
zqzhou 13.14
liangliu 24.34
total 5178.22
lastlog:lastlog文件在每次有用戶登錄時被查詢。可以使用lastlog命令來檢查某特定用戶上次登錄的時間,並格式化輸出上次登錄日 志/var/log/lastlog的內容。它根據UID排序顯示登錄名、埠號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯 示"**Never logged**。注意需要以root運行該命令,例如:
rong5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000
dbb **Never logged in**
xinchen **Never logged in**
pb9511 **Never logged in**
xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000
另外,可一加一些參數,例如,lastlog -u 102將報告UID為102的用戶;lastlog -t 7表示限制上一周的報告。
9. linux伺服器中怎麼查看日誌內容
登錄
kbkiss
Linux查看日誌常用命令
1.查看日誌常用命令
tail:
-n 是顯示行號;相當於nl命令;例子如下:
tail -100f test.log 實時監控100行日誌
tail -n 10 test.log 查詢日誌尾部最後10行的日誌;
tail -n +10 test.log 查詢10行之後的所有日誌;
head:
跟tail是相反的,tail是看後多少行日誌;例子如下:
head -n 10 test.log 查詢日誌文件中的頭10行日誌;
head -n -10 test.log 查詢日誌文件除了最後10行的其他所有日誌;
cat:
tac是倒序查看,是cat單詞反寫;例子如下:
cat -n test.log |grep "debug" 查詢關鍵字的日誌
2. 應用場景一:按行號查看---過濾出關鍵字附近的日誌
1)cat -n test.log |grep "debug" 得到關鍵日誌的行號
2)cat -n test.log |tail -n +92|head -n 20 選擇關鍵字所在的中間一行. 然後查看這個關鍵字前10行和後10行的日誌:
tail -n +92表示查詢92行之後的日誌
head -n 20 則表示在前面的查詢結果里再查前20條記錄
3. 應用場景二:根據日期查詢日誌
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特別說明:上面的兩個日期必須是日誌中列印出來的日誌,否則無效;
先 grep '2014-12-17 16:17:20' test.log 來確定日誌中是否有該 時間點
4.應用場景三:日誌內容特別多,列印在屏幕上不方便查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 這樣就分頁列印了,通過點擊空格鍵翻頁
(2)使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析
如:cat -n test.log |grep "debug" >debug.txt
10. linux怎麼查看log日誌
一般的系統日誌存在於/var/log/下,
可以用"tail 日誌文件"命令 查看日誌後10行
也可用"tail -f 日誌文件"命令動態跟蹤查看日誌,顯示10行。
也可用"tailf -100 日誌文件"命令動態跟蹤查看日誌,顯示100行