1. 前言
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比漳浦網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式漳浦網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋漳浦地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
在Linux日常管理中,我們肯定有查看某些服務(wù)的日志需求,或者是系統(tǒng)本身的日志。本文主要介紹如何查看Linux的系統(tǒng)日志,包括文件的路徑、工具的使用等等。會看Linux日志是非常重要的,不僅在日常操作中可以迅速排錯(cuò),也可以快速的定位。
2. 如何查看Linux日志
Linux日志文件的路徑一般位于,/var/log/,比如ngix的日志路徑為/var/log/nginx/,如果要查看某服務(wù)的日志,還可以使用systemctl status xxx,比如查看ssh服務(wù)的壯態(tài),systemctl status sshd
查看Linux某服務(wù)的日志
Liunx的配置文件在/etc/rsyslog.d里,可以看到如下信息
在linux系統(tǒng)當(dāng)中,有三個(gè)主要的日志子系統(tǒng):
1、連接時(shí)間日志:由多個(gè)程序執(zhí)行,把記錄寫入到/var/log/wtmp和/var/run/utmp,
login等程序會更新wtmp和utmp文件,使系統(tǒng)管理員能夠跟蹤誰在何時(shí)登錄到系統(tǒng)。
2、進(jìn)程統(tǒng)計(jì):由系統(tǒng)內(nèi)核執(zhí)行,當(dāng)一個(gè)進(jìn)程終止時(shí),為每個(gè)進(jìn)程往進(jìn)程統(tǒng)計(jì)文件中寫一個(gè)記錄。進(jìn)程統(tǒng)計(jì)的目的是為系統(tǒng)中的基本服務(wù)提供命令使用統(tǒng)計(jì)
3、錯(cuò)誤日志:由rsyslogd守護(hù)程序執(zhí)行,各種系統(tǒng)守護(hù)進(jìn)程、用戶程序和內(nèi)核通過rsyslogd守護(hù)程序向文件/var/log/messages報(bào)告值得注意的時(shí)間。另外有許多l(xiāng)inux程序創(chuàng)建日志,像HTTP和FTP這樣提供的服務(wù)器也保持詳細(xì)的日志。
4、其他日志……
查看Linux日志默認(rèn)路徑
可以看到在/var/log目錄下存在很多的日志文件,接下來就對里面的一些常用日志文件進(jìn)行分析
主要日志文件介紹:
內(nèi)核及公共消息日志:/var/log/messages
計(jì)劃任務(wù)日志:/var/log/cron
系統(tǒng)引導(dǎo)日志:/var/log/dmesg
郵件系統(tǒng)日志:/var/log/maillog
用戶登錄日志:/var/log/lastlog
/var/log/boot.log(記錄系統(tǒng)在引導(dǎo)過程中發(fā)生的時(shí)間)
/var/log/secure (用戶驗(yàn)證相關(guān)的安全性事件)
/var/log/wtmp(當(dāng)前登錄用戶詳細(xì)信息)
/var/log/btmp(記錄失敗的的記錄)
/var/run/utmp(用戶登錄、注銷及系統(tǒng)開、關(guān)等事件)
日志文件詳細(xì)介紹:
/var/log/secure
Linux系統(tǒng)安全日志,記錄用戶和工作組的情況、用戶登陸認(rèn)證情況
例子:我創(chuàng)建了一個(gè)zcwyou的用戶,然后改變了該用戶的密碼,于是該信息就被記錄到該日志下
Linux系統(tǒng)安全日志默認(rèn)路徑
該日志就詳細(xì)的記錄了我操作的過程。
內(nèi)核及公共信息日志,是許多進(jìn)程日志文件的匯總,從該文件中可以看出系統(tǒng)任何變化
查看Linux內(nèi)核及公共信息日志
系統(tǒng)引導(dǎo)日志
該日志使用dmesg命令快速查看最后一次系統(tǒng)引導(dǎo)的引導(dǎo)日志
查看Linux系統(tǒng)系統(tǒng)引導(dǎo)日志
最近的用戶登錄事件,一般記錄最后一次的登錄事件
該日志不能用諸如cat、tail等查看,因?yàn)樵撊罩纠锩媸嵌M(jìn)制文件,可以用lastlog命令查看,它根據(jù)UID排序顯示登錄名、端口號(tty)和上次登錄時(shí)間。如果一個(gè)用戶從未登錄過,lastlog顯示 Never logged。
該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動、停機(jī)的事件。該日志為二進(jìn)制文件,不能用諸如tail/cat/等命令,使用last命令查看。
記錄郵件的收發(fā)
此文件是記錄錯(cuò)誤登錄的日志,可以記錄有人使用暴力破解ssh服務(wù)的日志。該文件用lastb打開
該日志記錄當(dāng)前用戶登錄的情況,不會永久保存記錄。可以用who/w命令來查看
3. 常用的日志分析工具與使用方法
3.1 統(tǒng)計(jì)一個(gè)文本中包含字符個(gè)數(shù)
3.2 查看當(dāng)天訪問排行前10的url
3.3 查看apache的進(jìn)程數(shù)
3.4 訪問量前10的IP
cut部分表示取第1列即IP列,取第4列則為URL的訪問量
3.5 查看最耗時(shí)的頁面
按第2列響應(yīng)時(shí)間逆序排序
3.6 使用grep查找文件中指定字符出現(xiàn)的次數(shù)
-o 指示grep顯示所有匹配的地方,并且每一個(gè)匹配單獨(dú)一行輸出。這樣只要統(tǒng)計(jì)輸出的行數(shù)就可以知道這個(gè)字符出現(xiàn)的次數(shù)了。
4. 總結(jié)
查看Linux日志需求了解和熟悉使用一些常用的工具方能提升我們的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日志和使用 Rsyslog 和 AWK 過濾等等,只要能掌握這些工具。我們才能高效地處理和定位故障點(diǎn)。
last
-a 把從何處登入系統(tǒng)的主機(jī)名稱或ip地址,顯示在最后一行。
-d 指定記錄文件。指定記錄文件。將IP地址轉(zhuǎn)換成主機(jī)名稱。
-f 記錄文件 指定記錄文件。
-n 顯示列數(shù)或-顯示列數(shù) 設(shè)置列出名單的顯示列數(shù)。
-R 不顯示登入系統(tǒng)的主機(jī)名稱或IP地址。
-x 顯示系統(tǒng)關(guān)機(jī),重新開機(jī),以及執(zhí)行等級的改變等信息
以下看所有的重啟、關(guān)機(jī)記錄
last | grep reboot
last | grep shutdown
history
列出所有的歷史記錄:
[zzs@Linux] # history
只列出最近10條記錄:
[zzs@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執(zhí)行命令,執(zhí)行歷史清單中的第99條命令
[zzs@linux] #!99 (!和99中間沒有空格)
重復(fù)執(zhí)行上一個(gè)命令
[zzs@linux] #!!
執(zhí)行最后一次以rpm開頭的'命令(!? ?代表的是字符串,這個(gè)String可以隨便輸,Shell會從最后一條歷史命令向前搜索,最先匹配的一條命令將會得到執(zhí)行。)
[zzs@linux] #!rpm
逐屏列出所有的歷史記錄:
[zzs@linux]# history | more
立即清空history當(dāng)前所有歷史命令的記錄
[zzs@linux] #history -c
cat, tail 和 watch
系統(tǒng)所有的日志都在 /var/log 下面自己看(具體用途可以自己查,附錄列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何實(shí)時(shí)查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會直接返回命令行,而是實(shí)時(shí)打印日志文件中新增加的內(nèi)容,
這一特性,對于查看日志是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
除此之外還有more, less ,dmesg|more,這里就不作一一列舉了,因?yàn)槊钐嗔?關(guān)鍵看個(gè)人喜好和業(yè)務(wù)需求.個(gè)人常用的就是以上那些
linux日志文件說明
/var/log/message 系統(tǒng)啟動后的信息和錯(cuò)誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 與安全相關(guān)的日志信息
/var/log/maillog 與郵件相關(guān)的日志信息
/var/log/cron 與定時(shí)任務(wù)相關(guān)的日志信息
/var/log/spooler 與UUCP和news設(shè)備相關(guān)的日志信息
/var/log/boot.log 守護(hù)進(jìn)程啟動和停止相關(guān)的日志消息
/var/log/wtmp 該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動、停機(jī)的事件
tail -f 日志文件路徑主要用于查看實(shí)時(shí)的日志記錄,屬于動態(tài)記錄查看。
cat日志路徑主要用于查看靜態(tài)的歷史日志記錄,一般跟路徑名稱,常見的這周類型的日志記錄一般用管道符進(jìn)行過濾篩選自己所需的記錄。
dmesg主要用于調(diào)試腳本或者命令,出現(xiàn)異常中斷來排查錯(cuò)誤原因顯示的。
tail? -n? 10? test.log,查詢?nèi)罩疚膊孔詈?0行的日志。
tail -n +10 test.log,查詢10行之后的所有日志。
head -n 10? test.log,查詢?nèi)罩疚募械念^10行日志。
head -n -10? test.log,查詢?nèi)罩疚募俗詈?0行的其他所有日志。
操作命令
首先介紹一個(gè)名詞“控制臺(console)”,它就是我們通常見到的使用字符操作界面的人機(jī)接口,例如dos。我們說控制臺命令,就是指通過字符界面輸入的可以操作系統(tǒng)的命令。
例如dos命令就是控制臺命令。要了解的是基于Linux操作系統(tǒng)的基本控制臺命令。有一點(diǎn)一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的,也就是說,如果你輸入的命令大小寫不對的話,系統(tǒng)是不會做出你期望的響應(yīng)的。
連接相應(yīng)的linux主機(jī),輸入對應(yīng)的指令就可以看到了。
linux下查看php錯(cuò)誤日志的方法,打開php.ini配置文件開啟錯(cuò)誤日志,通過php.ini來查看錯(cuò)誤日志存放地址或者在一個(gè)php文件中輸出 phpinfo,查看錯(cuò)誤日志存放位置,重啟web服務(wù)器,查看錯(cuò)誤日志存放位置,執(zhí)行【tail -f 50 /var/php_errors.log】命令就可以查看。
linux系統(tǒng)基本命令:
id命令:id命令用于顯示用戶的ID,以及所屬群組的ID,id命令已經(jīng)默認(rèn)預(yù)裝在大多數(shù)Linux系統(tǒng)中,id會顯示用戶以及所屬群組的實(shí)際與有效ID,若兩個(gè)ID相同則僅顯示實(shí)際ID。
ncftp命令:ncftp命令是文字模式FTP程序中的佼佼者,它具備多樣特色, 包括顯示傳輸速率,下載進(jìn)度,自動續(xù)傳,標(biāo)住書簽,可通過防火墻和代理服務(wù)器等。
當(dāng)不指定用戶名時(shí),ncftp 命令會自動嘗試使用匿名賬戶anonymous 去連接遠(yuǎn)程FTP服務(wù)器,不需要用戶輸入賬號和密碼。
cat或者\(yùn)x0d\x0atail -f命令\x0d\x0a\x0d\x0a日 志 文 件 說 明\x0d\x0a\x0d\x0a/var/log/message 系統(tǒng)啟動后的信息和錯(cuò)誤日志,是Red Hat Linux中最常用的日志之一\x0d\x0a/var/log/secure 與安全相關(guān)的日志信息\x0d\x0a/var/log/maillog 與郵件相關(guān)的日志信息\x0d\x0a/var/log/cron 與定時(shí)任務(wù)相關(guān)的日志信息\x0d\x0a/var/log/spooler 與UUCP和news設(shè)備相關(guān)的日志信息\x0d\x0a/var/log/boot.log 守護(hù)進(jìn)程啟動和停止相關(guān)的日志消息\x0d\x0a系統(tǒng):\x0d\x0a\x0d\x0a# uname -a # 查看內(nèi)核/操作系統(tǒng)/CPU信息\x0d\x0a# cat /etc/issue\x0d\x0a# cat /etc/redhat-release # 查看操作系統(tǒng)版本\x0d\x0a# cat /proc/cpuinfo # 查看CPU信息\x0d\x0a# hostname # 查看計(jì)算機(jī)名\x0d\x0a# lspci -tv # 列出所有PCI設(shè)備\x0d\x0a# lsusb -tv # 列出所有USB設(shè)備\x0d\x0a# lsmod # 列出加載的內(nèi)核模塊\x0d\x0a# env # 查看環(huán)境變量\x0d\x0a資源:\x0d\x0a\x0d\x0a# free -m # 查看內(nèi)存使用量和交換區(qū)使用量\x0d\x0a# df -h # 查看各分區(qū)使用情況\x0d\x0a# du -sh # 查看指定目錄的大小\x0d\x0a# grep MemTotal /proc/meminfo # 查看內(nèi)存總量\x0d\x0a# grep MemFree /proc/meminfo # 查看空閑內(nèi)存量\x0d\x0a# uptime # 查看系統(tǒng)運(yùn)行時(shí)間、用戶數(shù)、負(fù)載\x0d\x0a# cat /proc/loadavg # 查看系統(tǒng)負(fù)載\x0d\x0a磁盤和分區(qū):\x0d\x0a\x0d\x0a# mount | column -t # 查看掛接的分區(qū)狀態(tài)\x0d\x0a# fdisk -l # 查看所有分區(qū)\x0d\x0a# swapon -s # 查看所有交換分區(qū)\x0d\x0a# hdparm -i /dev/hda # 查看磁盤參數(shù)(僅適用于IDE設(shè)備)\x0d\x0a# dmesg | grep IDE # 查看啟動時(shí)IDE設(shè)備檢測狀況\x0d\x0a網(wǎng)絡(luò):\x0d\x0a\x0d\x0a# ifconfig # 查看所有網(wǎng)絡(luò)接口的屬性\x0d\x0a# iptables -L # 查看防火墻設(shè)置\x0d\x0a# route -n # 查看路由表\x0d\x0a# netstat -lntp # 查看所有監(jiān)聽端口\x0d\x0a# netstat -antp # 查看所有已經(jīng)建立的連接\x0d\x0a# netstat -s # 查看網(wǎng)絡(luò)統(tǒng)計(jì)信息\x0d\x0a進(jìn)程:\x0d\x0a\x0d\x0a# ps -ef # 查看所有進(jìn)程\x0d\x0a# top # 實(shí)時(shí)顯示進(jìn)程狀態(tài)(另一篇文章里面有詳細(xì)的介紹)\x0d\x0a用戶:\x0d\x0a\x0d\x0a# w # 查看活動用戶\x0d\x0a# id # 查看指定用戶信息\x0d\x0a# last # 查看用戶登錄日志\x0d\x0a# cut -d: -f1 /etc/passwd # 查看系統(tǒng)所有用戶\x0d\x0a# cut -d: -f1 /etc/group # 查看系統(tǒng)所有組\x0d\x0a# crontab -l # 查看當(dāng)前用戶的計(jì)劃任務(wù)\x0d\x0a服務(wù):\x0d\x0a\x0d\x0a# chkconfig _list # 列出所有系統(tǒng)服務(wù)\x0d\x0a# chkconfig _list | grep on # 列出所有啟動的系統(tǒng)服務(wù)