自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

把你的Linux日志更充分地利用起來(lái)

譯文
系統(tǒng) Linux
Linux上的日志文件給出了大量實(shí)用的信息,可以表明系統(tǒng)上發(fā)生的情況。下列命令可幫助你厘清數(shù)據(jù)、揪出問(wèn)題。

【51CTO.com快譯】Linux上的日志文件給出了大量實(shí)用的信息,可以表明系統(tǒng)上發(fā)生的情況。下列命令可幫助你厘清數(shù)據(jù)、揪出問(wèn)題。

[[246685]]

Linux系統(tǒng)維護(hù)有大量的日志文件,其中許多日志文件你很可能懶得看一眼。不過(guò)有一些日志文件很寶貴,探究日志文件的方案五花八門。不妨看看一些系統(tǒng)日志,并了解更容易探究日志數(shù)據(jù)的一些方法。

日志文件輪換

首先存在日志輪換問(wèn)題。一些Linux日志文件是“輪換的”。換句話說(shuō),系統(tǒng)存儲(chǔ)不止“一代”的日志文件,主要是為了防止它們占用太多的磁盤空間。然后較舊的日志被壓縮,但保留一段時(shí)間。最終,一系列輪換日志文件中最舊的日志文件會(huì)在日志輪換過(guò)程中被自動(dòng)刪除,但你仍然可以訪問(wèn)許多較舊的日志,以便可以檢查過(guò)去幾天或幾周添加的日志條目。

如果你需要更細(xì)致一點(diǎn)地回顧在跟蹤的某個(gè)問(wèn)題,想了解哪些類型的系統(tǒng)信息保存起來(lái),只需用cd進(jìn)入到/var/log目錄,列出里面的內(nèi)容。 

  1. /var/log# ls  
  2. alternatives.log btmp.1 kern.log.2.gz syslog.3.gz  
  3. alternatives.log.1 cups kern.log.3.gz syslog.4.gz  
  4. alternatives.log.2.gz dist-upgrade kern.log.4.gz syslog.5.gz  
  5. alternatives.log.3.gz dpkg.log lastlog syslog.6.gz  
  6. alternatives.log.4.gz dpkg.log.1 mail.err syslog.7.gz  
  7. alternatives.log.5.gz dpkg.log.2.gz mail.err.1 sysstat  
  8. apport.log dpkg.log.3.gz mail.err.2.gz tallylog  
  9. apport.log.1 dpkg.log.4.gz mail.err.3.gz ufw.log  
  10. apt dpkg.log.5.gz mail.err.4.gz ufw.log.1  
  11. atop faillog mail.log ufw.log.2.gz  
  12. auth.log fontconfig.log mail.log.1 ufw.log.3.gz  
  13. auth.log.1 gdm3 mail.log.2.gz ufw.log.4.gz  
  14. auth.log.2.gz gpu-manager.log mail.log.3.gz unattended-upgrades  
  15. auth.log.3.gz hp mail.log.4.gz wtmp  
  16. auth.log.4.gz installer speech-dispatcher wtmp.1  
  17. boot.log journal syslog  
  18. bootstrap.log kern.log syslog.1  
  19. btmp kern.log.1 syslog.2.gz  

這是數(shù)量相當(dāng)龐大的日志和日志目錄,/var/log下面有69個(gè)文件和目錄,但如果算上那些目錄下面的文件,就有180個(gè)文件之多。 

  1. $ cd /var/log 
  2. $ ls | wc -l  
  3. 69  
  4. $ find . -type f -print | wc -l  
  5. 180  

如果你分析日志文件,會(huì)清楚地看到同一個(gè)基本的日志有哪幾代。比如說(shuō),其中一個(gè)主要的日志文件:syslog文件分成了9個(gè)不同的文件。這代表了一周以來(lái)的歷史數(shù)據(jù)以及當(dāng)前文件。大多數(shù)舊文件被壓縮以節(jié)省空間。 

  1. $ ls -l syslog*  
  2. -rw-r----- 1 syslog adm 588728 Oct 15 20:42 syslog  
  3. -rw-r----- 1 syslog adm 511814 Oct 15 00:09 syslog.1  
  4. -rw-r----- 1 syslog adm 31205 Oct 14 00:06 syslog.2.gz  
  5. -rw-r----- 1 syslog adm 34797 Oct 13 00:06 syslog.3.gz  
  6. -rw-r----- 1 syslog adm 61107 Oct 12 00:08 syslog.4.gz  
  7. -rw-r----- 1 syslog adm 31682 Oct 11 00:06 syslog.5.gz  
  8. -rw-r----- 1 syslog adm 32004 Oct 10 00:07 syslog.6.gz  
  9. -rw-r----- 1 syslog adm 32309 Oct 9 00:05 syslog.7.gz  

syslog文件包含來(lái)自許多不同系統(tǒng)服務(wù)的消息,cron、sendmail和內(nèi)核本身就是典型的幾項(xiàng)系統(tǒng)服務(wù)。你還會(huì)看到用戶會(huì)話和cron(計(jì)劃任務(wù))的影子。

大多數(shù)Linux系統(tǒng)不再使用舊的messages和dmesg文件,多年來(lái)它們?yōu)槲覀兊拇蠖鄶?shù)系統(tǒng)消息充當(dāng)?shù)顷懳恢?。相反,一大批文件和一些特殊命令可以用?lái)幫助顯示可能與你要查找的內(nèi)容密切相關(guān)的日志信息。

視具體的文件而定,你可能只需使用more或tail命令,或者可以使用針對(duì)特定文件的命令,比如使用who命令,從wtmp日志提取用戶登錄數(shù)據(jù)。 

  1. $ who wtmp  
  2. shs pts/1 2018-10-05 08:42 (192.168.0.10)  
  3. shs pts/1 2018-10-08 09:41 (192.168.0.10)  
  4. shs pts/1 2018-10-11 14:00 (192.168.0.10)  
  5. shs :0 2018-10-14 19:11 (:0)  
  6. shs pts/0 2018-10-14 19:16 (192.168.0.25)  
  7. shs pts/0 2018-10-15 07:39 (192.168.0.25)  
  8. shs :0 2018-10-15 19:58 (:0)  
  9. dory pts/0 2018-10-15 20:01 (192.168.0.11)  
  10. shs pts/0 2018-10-15 20:42 (192.168.0.6)  
  11. shs pts/0 2018-10-16 07:18 (192.168.0.6)  
  12. nemo pts/1 2018-10-16 07:46 (192.168.0.14)  

同樣,你在運(yùn)行tail faillog命令后可能什么都看不到,但是像這樣的命令向你表明它全是0: 

  1. # od -bc faillog  
  2. 0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000  
  3. \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0  
  4.  
  5. 0076600  

你嘗試使用tail lastlog命令時(shí),可能也只發(fā)現(xiàn)需要使用lastlog命令來(lái)查看該日志的數(shù)據(jù)。

因此,這里列出了/var/log中的日志文件,以及關(guān)于它們包含的內(nèi)容以及如何查看內(nèi)容的一些描述。

  • alternatives.log-來(lái)自u(píng)pdate-alternatives的“運(yùn)行”建議
  • apport.log-關(guān)于已截獲的崩潰的信息
  • auth.log-使用的用戶登錄和身份驗(yàn)證機(jī)制
  • boot.log-啟動(dòng)時(shí)間消息
  • btmp-失敗的登錄嘗試
  • dpkg.log-關(guān)于軟件包何時(shí)安裝或刪除的信息
  • lastlog-最近的登錄(使用lastlog命令來(lái)查看)
  • faillog-關(guān)于失敗的登錄嘗試的信息;如果失敗的登錄嘗試一次都沒(méi)有,全是0(使用faillog命令來(lái)查看)
  • kern.log-內(nèi)核日志消息
  • mail.err-關(guān)于郵件服務(wù)器檢測(cè)到的錯(cuò)誤的信息
  • mail.log-來(lái)自郵件服務(wù)器的信息
  • syslog-系統(tǒng)服務(wù)日志
  • ufw-防火墻日志
  • wtmp-登錄記錄

journalctl

除了/var/log中維護(hù)的日志文件外,還有systemd日志。雖然這個(gè)日志不是通常意義上的簡(jiǎn)單的“日志文件”,卻代表了關(guān)于用戶和內(nèi)核活動(dòng)的一堆重要信息??蓮南到y(tǒng)上的眾多來(lái)源獲取該信息。

要查看已收集的信息,請(qǐng)使用journalctl命令。

會(huì)看到多少信息取決于你是不是adm組的成員。非adm用戶看到的信息比較少,但adm組的成員可以訪問(wèn)大量數(shù)據(jù),如此例所示,這僅僅向我們顯示該adm組成員可以查看多少行信息: 

  1. $ journalctl | wc -l 
  2. 666501  

有666000多行文本!為了縮減至更一目了然的版本,你恐怕要使用參數(shù)來(lái)定制顯示的內(nèi)容。Journalctl的幾個(gè)選項(xiàng)包括如下:

  • --utc (change the time format to UTC)
  • -b (only show records added since the last boot)
  • -b -1 (only show records added since the previous to last boot)
  • --since and --until (only show records added within the specify timeframe, e.g., --since "2018-10-15" --until "2018-10-11 06:00"

示例如下: 

  1. $ journalctl --since "2018-10-16 13:28"  
  2. -- Logs begin at Mon 2018-05-14 15:16:11 EDT, end at Tue 2018-10-16 13:28:57 EDT. --  
  3. Oct 16 13:28:25 butterfly kernel: [UFW BLOCK] IN=enp0s25 OUT= MAC=01:00:5e:00:00:01:02:  
  4. Oct 16 13:28:25 butterfly kernel: [UFW BLOCK] IN=enp0s25 OUT= MAC=01:00:5e:00:00:fb:00:  
  5. Oct 16 13:28:57 butterfly su[7784]: pam_unix(su:session): session closed for user root  
  6. Oct 16 13:28:57 butterfly sudo[7783]: pam_unix(sudo:session): session closed for user root  
  7. lines 1-5/5 (END 

還可以查看僅僅某一項(xiàng)服務(wù)的日志條目。這可能是journalctl命令比較有用的功能之一: 

  1. $ journalctl -u networking.service  
  2. -- Logs begin at Mon 2018-05-14 15:16:11 EDT, end at Tue 2018-10-16 08:06:31 EDT  
  3. May 14 15:16:12 shs-Inspiron-530s systemd[1]: Starting Raise network interfaces.  
  4. May 14 15:16:12 shs-Inspiron-530s systemd[1]: Started Raise network interfaces.  
  5. May 14 15:49:18 butterfly systemd[1]: Stopping Raise network interfaces...  
  6. May 14 15:49:18 butterfly systemd[1]: Stopped Raise network interfaces.  
  7. -- Reboot --  
  8. May 14 15:49:50 butterfly systemd[1]: Starting Raise network interfaces...  
  9. May 14 15:49:51 butterfly systemd[1]: Started Raise network interfaces.  
  10. -- Reboot --  

注意這個(gè)輸出結(jié)果中系統(tǒng)重啟信息是如何顯示的。

想列出服務(wù),試一下這樣的命令: 

  1. $ service --status-all | column  
  2. [ + ] acpid [ + ] network-manager  
  3. [ - ] alsa-utils [ - ] networking  
  4. [ - ] anacron [ - ] plymouth  
  5. [ + ] apparmor [ - ] plymouth-log  
  6. [ + ] apport [ - ] pppd-dns  
  7. [ + ] atd [ + ] procps  
  8. [ + ] atop [ - ] quota  
  9. [ + ] atopacct [ - ] quotarpc  
  10. [ + ] avahi-daemon [ - ] rsync  
  11. [ - ] bluetooth [ + ] rsyslog  
  12. [ - ] console-setup.sh [ - ] saned  
  13. [ + ] cron [ + ] sendmail  
  14. [ + ] cups [ + ] speech-dispatcher  
  15. [ + ] cups-browsed [ - ] spice-vdagent  
  16. [ + ] dbus [ + ] ssh  
  17. [ - ] dns-clean [ + ] sysstat  
  18. [ + ] gdm3 [ - ] thermald  
  19. [ + ] grub-common [ + ] udev  
  20. [ - ] hwclock.sh [ + ] ufw  
  21. [ + ] irqbalance [ + ] unattended-upgrades  
  22. [ + ] kerneloops [ - ] uuidd  
  23. [ - ] keyboard-setup.sh [ + ] whoopsie  
  24. [ + ] kmod [ - ] x11-common  

在上述顯示的內(nèi)容中: 

  1. + = active  
  2. - = inactive  
  3. ? = no status option available  

這個(gè)實(shí)用命令給出了表明磁盤空間使用情況的簡(jiǎn)短報(bào)告: 

  1. $ journalctl --disk-usage  
  2. Archived and active journals take up 824.1M in the file system.  

如果你想關(guān)注某一個(gè)進(jìn)程,只需提供PID(截短的),如下所示。 

  1. $ journalctl _PID=787  
  2. -- Logs begin at Mon 2018-05-14 15:16:11 EDT, end at Tue 2018-10-16 08:25:17 EDT  
  3. Aug 03 18:02:46 butterfly apport[787]: * Starting automatic crash report genera  
  4. Aug 03 18:02:46 butterfly apport[787]: ...done.  
  5. -- Reboot --  
  6. Sep 16 13:26:34 butterfly atopacctd[787]: Version: 2.3.0 - 2017/03/25 09:59:59  
  7. Sep 16 13:26:34 butterfly atopacctd[787]: accounting to /run/pacct_source  
  8. -- Reboot --  
  9. Oct 03 18:08:41 butterfly apport[787]: * Starting automatic crash report genera  
  10. Oct 03 18:08:41 butterfly apport[787]: ...done.  
  11. -- Reboot --  
  12. Oct 15 14:07:11 butterfly snapd[787]: AppArmor status: apparmor is enabled but s  
  13. Oct 15 14:07:12 butterfly snapd[787]: AppArmor status: apparmor is enabled but s  
  14. Oct 15 14:07:12 butterfly snapd[787]: daemon.go:344: started snapd/2.35.2 (serie  
  15. Oct 15 14:07:12 butterfly snapd[787]: autorefresh.go:376: Cannot prepare auto-re  

注意:systemd日志的配置文件是/etc/systemd/journald.conf。

原文標(biāo)題:Making better use of your Linux logs,作者:Sandra Henry-Stocker 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2020-01-06 15:00:43

Linux電腦發(fā)行版

2014-05-06 10:20:02

2021-07-28 10:32:53

漏洞網(wǎng)絡(luò)安全信息安全

2011-02-16 08:56:19

2016-08-22 15:15:14

數(shù)據(jù)實(shí)踐

2022-03-16 09:24:59

WindowsPC 游戲開(kāi)發(fā)人員

2012-08-16 11:08:20

2009-06-29 10:04:47

DB2 9.7

2021-09-29 07:13:12

編程 Python Merge

2021-08-17 13:44:05

區(qū)塊鏈品牌技術(shù)

2018-07-11 06:52:47

云計(jì)算云遷移

2016-03-17 09:45:17

react雙向綁定插件

2021-06-30 09:20:18

NuShell工具Linux

2021-04-24 23:31:18

Python日志編程

2012-10-22 20:34:05

統(tǒng)一通信托管協(xié)作靜態(tài)橋

2017-04-06 14:40:29

JavaScript錯(cuò)誤處理堆棧追蹤

2016-11-18 13:15:02

廣電電視推流網(wǎng)

2015-12-14 15:30:45

銳捷網(wǎng)絡(luò)

2011-12-21 09:41:44

虛擬化服務(wù)器虛擬化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)