linux截取日誌
『壹』 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
『貳』 查看和列印日誌的linux命令
Linux系統日誌文件存放在/var/log下
/var/log/cron 記錄了系統定時任務相關的日誌;
/var/log/cups 記錄列印信息的日誌;
/var/log/dmesg 記錄了系統在開機時內核自檢的信息,也可以使用dmesg命令直接查看內核自檢信息。
/var/log/btmp 記錄錯誤登錄的日誌,這個文件是二進制文件,不能直接vi查看,而要使用lastb命令查看;
/var/log/lastlog 記錄系統中所有用戶最後一次的登錄時間的日誌。這個文件也是二進制文件,不能直接vi,而要使用lastlog命令查看。
/var/log/mailog 記錄郵件信息;
/var/log/message 記錄系統重要信息的日誌,記錄Linux系統的絕大多數重要信息,如果系統出現問題,首先要檢查的就是應該是這個日誌文件;
/var/log/secure 記錄驗證和授權方面的信息,只要涉及賬戶和密碼的程序都會記錄。比如說系統的登錄,ssh的登錄,su切換用戶,sudo授權,甚至添加用戶和修改用戶密碼;
/var/log/wtmp 永久記錄所有用戶的登錄、注銷信息,同時記錄系統的啟動、重啟、關機事件。同樣這個文件也是一個二進制文件不能直接vi而需要使用last命令來查看;
/var/run/utmp 記錄當前已經登錄的用戶的信息。這個文件會隨著用戶的登錄和注銷而不斷變化,只記錄當前登錄用戶的信息,同樣這個文件不能直接vi,要使用w,who,users等命令;
『叄』 如何實時查看linux下的日誌
1.如下圖所示,先cd到我們需要監控的日誌目錄。
(3)linux截取日誌擴展閱讀:
Linux完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
Linux支持多種平台
Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
『肆』 查看linux日誌的工具有哪些
linux 日誌查看
tail、head、 cat、tac、sed、less、echo
1、命令格式: tail [必要參數] [選擇參數] [文件]
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的位元組數
-n<行數> 顯示行數
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒
tail -n 100 catalina.out 查詢日誌尾部最後100行的日誌;
tail -n +100 catalina.out 查詢100行之後的所有日誌;
tail -fn 100 catalina.out 循環實時查看最後100行記錄(最常用的)
配合著grep用, 例如 : tail -fn 100 catalina.out | grep -- '關鍵字'
如果一次性查詢的數據量太大,可以進行翻頁查看,
例如:tail -n 6000 catalina.out |more -100 可以進行多屏顯示(ctrl + f 或者 空格鍵可以快捷鍵)
--------------------------------------------------------------------------------------------------------------------------
2、head
head -n 1000 catalina.out //查詢日誌文件中的頭10行日誌;head -n -1000 catalina.out //查詢日誌文件除了最後10行的其他所有日誌;
head其他參數與tail 類似
-----------------------------------------------------------------------------------------------------
3、cat
cat 是由第一行到最後一行連續顯示在屏幕上
$ cat filename // 一次顯示整個文件
$ cat > filename //從鍵盤創建一個文件
$cat file1 file2 > file //將幾個文件合並為一個文件,只能創建新文件,不能編輯已有文件.
$cat -n textfile1 > textfile2 //將一個日誌文件的內容追加到另外一個 :
$cat : >textfile2 // 清空一個日誌文件
注意: >意思是創建, >>是追加。
cat其他參數與tail 類似
----------------------------------------------------------------------------------------------------------------------------------------
4.tac
tac 則是由最後一行到第一行反向在螢幕上顯示出來
--------------------------------------------------------------------------------------------------------------------------------------
5.sed
這個命令可以查找日誌文件特定的一段 , 也可以根據時間的一個范圍查詢
//按照行號
sed -n '2,100p'catalina.out
//這樣你就可以只查看文件的第5行到第10行。
//按照時間段
sed -n '/2019-01-17 10:07:10/,/2019-02-14 16:54:01/p'catalina.out
-------------------------------------------------------------------------------------------------
6.less
less log.log
shift + G 命令到文件尾部 然後輸入 ?加上你要搜索的關鍵字例如 ?1213shift+n 關鍵字之間進行切換
----------------------------------------------------------------------------------------------
附錄1history // 所有的歷史記錄history | grep XXX // 歷史記錄中包含某些指令的記錄history | more // 分頁查看記錄history -c // 清空所有的歷史記錄!! 重復執行上一個命令
查詢出來記錄後選中 :!323
-------------------------------------------------------------------------------------------------------------
7、echo
輸出 echo "12345"
---------------------------------------------------------------------------------------------------------
附錄2
linux日誌文件說明
/var/log/message 系統啟動後的信息和錯誤日誌,是Red Hat Linux中最常用的日誌之一
/var/log/secure 與安全相關的日誌信息
/var/log/maillog 與郵件相關的日誌信息
/var/log/cron 與定時任務相關的日誌信息
/var/log/spooler 與UUCP和news設備相關的日誌信息
/var/log/boot.log 守護進程啟動和停止相關的日誌消息
/var/log/wtmp 該日誌文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件
---------------------------------------------------------------------------------------------------------------------
附錄3
tomcat運行日誌
1、先切換到:cd usr/local/tomcat3/logs
2、tail -f catalina.out
3、這樣運行時就可以實時查看運行日誌了
Ctrl+c 是退出tail命令。 alt+E+R重置
『伍』 linux下如何提取日誌中指定的一段內容100分急求!!!
其實要說回答很簡單,但是要給你做出來稍微費工夫,因為沒有環境可以測試,你可以寫一段shell代碼來提取,也可以用sed/awk/grep等命令來做,但是命令的復雜度不亞於寫一段shell代碼。shell代碼我給你演算法吧。(括弧里是參考代碼,bash)
初始化變數(flg=0)
循環讀取每一行文件(while line in `cat $log`)
變數開始[sip/2.0]為真時( if [ $flg -eq 1 ]; then )
輸出當前行到結果文件中( echo $line >> $retFile )
如果是用戶結束 ( chkEnd $line #chkEnd 是個shell函數檢查是不是結束
if [ $? -eq 1 ]; then)
變數變數開始[sip/2.0]設置為假 (flg=0)
#如果是用戶結束(fi)
否則(else)
如果當前行含有[sip/2.0]( echo $line | grep "[sip/2.0"
if [ $? -eq 0 ]; then)
輸出當前行到結果文件中(echo $line >> $retFile)
變數變數開始[sip/2.0]設置為真(flg=1)
#如果當前行含有[sip/2.0](fi)
#變數開始[sip/2.0]為真時(fi)
『陸』 linux 如何截取一段時間內log日誌
截取一段時間內的log日誌可以使用sed命令對log文件進行抽取操作:
1,sed查看某時間段到現在的系統日誌:
sed -n '/May 20 17/,$p' /var/log/messages | less
2,sed 截選時間段日誌:
假如日誌的格式是--
「2015-05-04 09:25:55,606 後面跟日誌內容 」這樣的
目標是需要將05-04的09:25:55 和09:28:08 之間的日誌截取出來:
使用sed命令如下:
sed -n 『/2015-05-04 09:25:55/,/2015-05-04 09:28:55/p』 logfile
這樣可以精確地截取出來某個時間段的日誌。
如果需要截取的日誌太大,達到幾個G的話,不能去vi打開文件:
根據之前的日誌格式,使用正則表達式:
sed -n 『/2010-11-17 09:[0-9][0-9]:[0-9][0-9]/,/2010-11-17 16:[0-9][0-9]:[0-9][0-9]/p』 logfile
如果沒有問題的話,上面就能篩選出指定的時間段的日誌。
『柒』 如何實時查看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表示限制上一周的報告。
『捌』 linux如何查看日誌
linux如何查看日誌?我們一起來了解一下吧。1、打開linux系統,在linux的桌面的空白處右擊。
2、在彈出的下拉選項里,點擊打開終端。
3、使用catfilename命令,並回車運行即可顯示全部日誌內容。
本文章基於ThinkpadE15品牌、centos7系統撰寫的。
『玖』 linux腳本怎麼提取nginx日誌的前10分鍾數據。
#!/bin/bash
#BySpinestar
sys_time_h=`date+%M`
log_time_h=$[$sys_time_h-10]
read-p"Pleaseinputyourlog_file_path"log_path
awk'$4~/'^$log_time_h'/,/'^$sys_time_h'/{print$0}'$log_path
不確定你的日誌格式,沒法完全寫出,這個是如果時間在第四列,則根據第四列來輸出,這個應該輸出的是每一個小時的當前分鍾前10分鍾-當前時間的
你得發一部分日誌格式,得看著日誌時間格式來寫