在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 系統(tǒng)日志
通信工具
信號和 Traps
文件管理
vi 編輯器使用向?qū)?/span>
替代
變量
環(huán)境
進(jìn)程管理
實(shí)用工具
引用機(jī)制
Manpage 幫助
文件系統(tǒng)基礎(chǔ)知識
系統(tǒng)日志
循環(huán)
正則表達(dá)式和 SED
目錄
函數(shù)
管道和過濾器
特殊變量
輸入/輸出重定向
系統(tǒng)性能
用戶管理
循環(huán)控制
決策
什么是 UNIX ?
數(shù)組
什么是 Shell 腳本
基本操作符
文件權(quán)限

系統(tǒng)日志

UNIX 系統(tǒng)有一個非常靈活和強(qiáng)大的日志系統(tǒng),它讓你能夠記錄幾乎任何你能想象的東西,然后你可以操作日志來獲取你需要的信息。

許多版本的 UNIX 提供了一個名為 syslog 的通用日志工具,有信息需要記錄的單獨(dú)程序要將信息發(fā)送到 syslog。

Unix syslog 是一個主機(jī)可配置的,統(tǒng)一的系統(tǒng)日志工具。該系統(tǒng)采用集中式的系統(tǒng)日志進(jìn)程,其運(yùn)行程序 /etc/syslogd 或者 /etc/syslog。

系統(tǒng)記錄器的操作是相當(dāng)簡單的。程序發(fā)送日志條目到 syslogd,其將會在配置文件 /etc/syslogd.conf/etc/syslog 中查找,當(dāng)找到一個匹配后,將日志消息寫入到期望的日志文件中。

現(xiàn)有你應(yīng)該了解的四種基本日志術(shù)語:

術(shù)語 描述
Facility 此標(biāo)識符用來描述提交的日志信息的應(yīng)用程序或進(jìn)程。例如郵件,內(nèi)核和 FTP。
Priority 一個顯示消息重要性的指示器。syslog 作為準(zhǔn)則定義了消息的級別,從調(diào)試信息到關(guān)鍵事件。
Selector 一個或更多的 facility 和 level 的結(jié)合體 。當(dāng)一個輸入事件匹配一個 selector 時,一個 action 會被執(zhí)行。
Action 傳入的消息匹配 selector 時會發(fā)生的事情。Action 可以將消息寫入日志文件,將消息回傳到控制臺或其他設(shè)備,將消息寫入到一個登錄用戶,或?qū)⑾l(fā)送到另一個日志服務(wù)器。

Syslog Facilities

下面是 selector 可用的 facility。不是所有的 facility 都存在于所有版本的 UNIX。

Facility 描述
auth 需要用戶名和密碼的相關(guān)活動(getty,su,login)
authpriv 類似于 auth 的認(rèn)證,但是記錄的文件只能被授權(quán)的用戶讀取。
console 用于捕獲信息,這些信息一般會傳向系統(tǒng)控制臺。
cron 與 cron 系統(tǒng)有關(guān)的計(jì)劃任務(wù)信息。
daemon 所捕獲的所有系統(tǒng)守護(hù)進(jìn)程信息。
ftp ftp 守護(hù)進(jìn)程相關(guān)的信息。
kern 內(nèi)核信息。
local0.local7 用戶自定義使用的本地信息。
lpr 與打印服務(wù)系統(tǒng)有關(guān)的信息。
mail 與郵件系統(tǒng)相關(guān)的信息。
mark 用于生產(chǎn)日志文件中時間戳的偽事件。
news 與網(wǎng)絡(luò)新聞傳輸協(xié)議( nntp )有關(guān)的信息。
ntp 與網(wǎng)絡(luò)時間協(xié)議有關(guān)的信息。
user 普通用戶進(jìn)程產(chǎn)生的信息。
uucp UUCP 子系統(tǒng)生成的信息。

Syslog 優(yōu)先級

syslog 的優(yōu)先級( Priority )如下表:

Priority 描述
emerg 緊急情況,如即將發(fā)生的系統(tǒng)崩潰,通常會廣播到所有用戶。
alert 需要立即修改的情況,如系統(tǒng)數(shù)據(jù)庫的損壞。
crit 關(guān)鍵的情況,如一個硬件的錯誤。
err 普通錯誤。
warning 警告
notice 不是一個錯誤的情況,但是可能需要用特定方式的處理一下。
info 報(bào)告性的消息。
debug 用于調(diào)試程序的消息。
none 沒有重要級別,通常用于指定非日志的消息。

facility 和 level 的組合能夠讓你辨別記錄了什么和這些日志信息去哪兒了。

每個程序盡職盡責(zé)地向系統(tǒng)記錄器發(fā)送消息,記錄器基于 selector 定義的 level 決定跟蹤什么和舍棄什么信息。

當(dāng)你指定了一個 level,系統(tǒng)會記錄這一 level 及更高 level 的一切信息。

文件 /etc/syslog.conf

文件 /etc/syslog.conf 用于配置記錄消息的位置。一個典型的 syslog.conf 文件看起來應(yīng)該像這樣:

    *.err;kern.debug;auth.notice /dev/console
    daemon,auth.notice           /var/log/messages
    lpr.info                     /var/log/lpr.log
    mail.*                       /var/log/mail.log
    ftp.*                        /var/log/ftp.log
    auth.*                       @prep.ai.mit.edu
    auth.*                       root,amrood
    netinfo.err                  /var/log/netinfo.log
    install.*                    /var/log/install.log
    *.emerg                      *
    *.alert                      |program_name
    mark.*                       /dev/console

文件中的每一行包含兩部分:

  • 一個消息 selector,其指定了哪種消息用來記錄。例如,內(nèi)核的所有錯誤信息或所有調(diào)試信息。
  • 一個 action,其指明了對接收的消息該怎么處理。例如,寫入一個文件中或者將消息發(fā)送到用戶的終端。

下面是上述配置的注意事項(xiàng):

  • 消息 selector 有兩部分:facility 和 priority。例如, kern.debug 選擇了所有由內(nèi)核( facility )產(chǎn)生的的調(diào)試信息( priority )。
  • 消息 selectetor kern.debug 選擇了所有 priority 大于 debug 的信息。
  • 在任何 facility 和 priority 位置上的星號,表示“所有”的意思。例如, *.debug 表示所有 facility 的調(diào)試信息,而 kern.* 表示內(nèi)核所產(chǎn)生的所有信息。
  • 你也可以用逗號來指定多個 facility。兩個或兩個以上的 selectetor 可以用分號組合在一起。

日志記錄 Action

action 部分指定了下面五個 action 中的其中一個:

  1. 將信息記錄到一個文件或設(shè)備。例如,/var/log/lpr.log 或者 /dev/console。
  2. 發(fā)送一個消息給一個用戶。你可以用逗號分開指定多個用戶名(例如,root,amrood)。
  3. 發(fā)送一個消息給所有用戶。在這種情況下,action 部分包含了一個星號(例如,*)。
  4. 用管道發(fā)送消息到程序。在這種情況下,程序是在 UNIX 管道符號(|)后指定。
  5. 將消息發(fā)送到另一臺主機(jī)上的 syslog。在這種情況下,action 部分包含了一個前面有 at 符號的主機(jī)名(例如,@jikexueyuan.com)。

logger 命令

UNIX 提供了 logger 命令,這是處理系統(tǒng)日志記錄的一個非常有用的命令。logger 命令發(fā)送日志消息到 syslogd 守護(hù)進(jìn)程,從而驅(qū)使系統(tǒng)記錄日志。

這意味著我們可以隨時用命令行檢查 syslogd 守護(hù)進(jìn)程及其配置。logger 命令提供了一種在命令行上添加一行條目到系統(tǒng)日志文件中的方法。

該命令的格式是:

    logger [-i] [-f file] [-p priority] [-t tag] [message]...

下面是具體的參數(shù)細(xì)節(jié):

選項(xiàng) 描述
-f filename 使用文件 filename 的內(nèi)容作為消息來記錄。
-i 日志的每一行都記錄進(jìn)程的 id。
-p priority 指定輸入消息的優(yōu)先級 priority(指定的 selector),優(yōu)先級 priority 可以是數(shù)字或者指定為 facility.level 對的格式。默認(rèn)參數(shù)是 user.notice。
-t tag 用指定 tag 標(biāo)記記錄到日志中的每一行。
message 字符串參數(shù),它的內(nèi)容以特定順序連接在一起,由空格分開。

日志輪換

日志文件有快速增長的特點(diǎn),并消耗大量的磁盤空間。大多數(shù) UNIX 發(fā)行版系統(tǒng)使用了工具(如 newsyslog 或 logrotate)啟用日志輪換功能。

這些工具由 cron 守護(hù)進(jìn)程在一個頻繁的時間間隔里調(diào)用。你可以在 newsyslog 或 logrotate 的手冊頁中獲取更多的細(xì)節(jié)內(nèi)容。

重要日志文件的位置

所有的系統(tǒng)應(yīng)用程序創(chuàng)建自己的日志文件在 /var/log 和它的子目錄里。下面這里有幾個重要的應(yīng)用,其相應(yīng)的日志目錄:

應(yīng)用 目錄
httpd /var/log/httpd
samba /var/log/samba
cron /var/log/
mail /var/log/
mysql /var/log/
上一篇:變量下一篇:文件權(quán)限