91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux日志有哪些類型

發布時間:2022-02-02 15:00:51 來源:億速云 閱讀:339 作者:iii 欄目:開發技術

這篇“Linux日志有哪些類型”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Linux日志有哪些類型”文章吧。

Linux日志有哪些類型

大部分Linux發行版默認的日志守護進程為 syslog,位于 /etc/syslog 或 /etc/syslogd,默認配置文件為 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 發送信息。

Linux系統內核和許多程序會產生各種錯誤信息、警告信息和其他的提示信息,這些信息對管理員了解系統的運行狀態是非常有用的,所以應該把它們寫到日志文件中去。完成這個過程的程序就是syslog。syslog可以根據日志的類別和優先級將日志保存到不同的文件中。例如,為了方便查閱,可以把內核信息與其他信息分開,單獨保存到一個獨立的日志文件中。默認配置下,日志文件通常都保存在“/var/log”目錄下。

日志類型

下面是常見的日志類型,但并不是所有的Linux發行版都包含這些類型:

類型說明
auth用戶認證時產生的日志,如login命令、su命令。
authpriv與 auth 類似,但是只能被特定用戶查看。
console針對系統控制臺的消息。
cron系統定期執行計劃任務時產生的日志。
daemon某些守護進程產生的日志。
ftpFTP服務。
kern系統內核消息。
local0.local7由自定義程序使用。
lpr與打印機活動有關。
mail郵件日志。
mark產生時間戳。系統每隔一段時間向日志文件中輸出當前時間,每行的格式類似于 May 26 11:17:09 rs2 — MARK –,可以由此推斷系統發生故障的大概時間。
news網絡新聞傳輸協議(nntp)產生的消息。
ntp網絡時間協議(ntp)產生的消息。
user用戶進程。
uucpUUCP子系統。

日志優先級

常見的日志優先級請見下標:

優先級說明
emerg緊急情況,系統不可用(例如系統崩潰),一般會通知所有用戶。
alert需要立即修復,例如系統數據庫損壞。
crit危險情況,例如硬盤錯誤,可能會阻礙程序的部分功能。
err一般錯誤消息。
warning警告。
notice不是錯誤,但是可能需要處理。
info通用性消息,一般用來提供有用信息。
debug調試程序產生的信息。
none沒有優先級,不記錄任何日志消息。

常見日志文件

所有的系統應用都會在 /var/log 目錄下創建日志文件,或創建子目錄再創建日志文件。例如:

文件/目錄說明
/var/log/boot.log開啟或重啟日志。
/var/log/cron計劃任務日志
/var/log/maillog郵件日志。
/var/log/messages該日志文件是許多進程日志文件的匯總,從該文件可以看出任何入侵企圖或成功的入侵。
/var/log/httpd 目錄Apache HTTP 服務日志。
/var/log/samba 目錄samba 軟件日志

/etc/syslog.conf 文件

/etc/syslog.conf 是 syslog 的配置文件,會根據日志類型和優先級來決定將日志保存到何處。典型的 syslog.conf 文件格式如下所示:

 *.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.*                       @see.xidian.edu.cn
 auth.*                       root,amrood
 netinfo.err                  /var/log/netinfo.log
 install.*                    /var/log/install.log
 *.emerg                      *
 *.alert                      |program_name
 mark.*                       /dev/console

第一列為日志類型和日志優先級的組合,每個類型和優先級的組合稱為一個選擇器;后面一列為保存日志的文件、服務器,或輸出日志的終端。syslog 進程根據選擇器決定如何操作日志。

對配置文件的幾點說明:

  • 日志類型和優先級由點號(.)分開,例如 kern.debug 表示由內核產生的調試信息。

  • kern.debug 的優先級大于 debug。

  • 星號(*)表示所有,例如 .debug 表示所有類型的調試信息,kern. 表示由內核產生的所有消息。

  • 可以使用逗號(,)分隔多個日志類型,使用分號(;)分隔多個選擇器。

對日志的操作包括:

  • 將日志輸出到文件,例如 /var/log/maillog 或 /dev/console。

  • 將消息發送給用戶,多個用戶用逗號(,)分隔,例如 root, amrood。

  • 通過管道將消息發送給用戶程序,注意程序要放在管道符(|)后面。

  • 將消息發送給其他主機上的 syslog 進程,這時 /etc/syslog.conf 文件后面一列為以@開頭的主機名,例如@see.xidian.edu.cn。

logger 命令

logger 是Shell命令,可以通過該命令使用 syslog 的系統日志模塊,還可以從命令行直接向系統日志文件寫入一行信息。

logger命令的語法為:

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

每個選項的含義如下:

選項說明
-f filename將 filename 文件的內容作為日志。
-i每行都記錄 logger 進程的ID。
-p priority指定優先級;優先級必須是形如 facility.priority 的完整的選擇器,默認優先級為 user.notice。
-t tag使用指定的標簽標記每一個記錄行。
message要寫入的日志內容,多條日志以空格為分隔;如果沒有指定日志內容,并且 -f filename 選項為空,那么會把標準輸入作為日志內容。

例如,將ping命令的結果寫入日志:

 $ ping 192.168.0.1 | logger -it logger_test -p local3.notice&
 $ tail -f /var/log/userlog
 Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
 Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms
 Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms
 Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms
 Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms
 Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms
 Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms
 Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms
 Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms
 Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms
 Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

ping命令的結果成功輸出到 /var/log/userlog 文件。

命令 logger -it logger_test -p local3.notice 各選項的含義:

  • -i:在每行都記錄進程ID;

  • -t logger_test:每行記錄都加上“logger_test”這個標簽;

  • -p local3.notice:設置日志類型和優先級。

日志轉儲

日志轉儲也叫日志回卷或日志輪轉。Linux中的日志通常增長很快,會占用大量硬盤空間,需要在日志文件達到指定大小時分開存儲。

syslog 只負責接收日志并保存到相應的文件,但不會對日志文件進行管理,因此經常會造成日志文件過大,尤其是WEB服務器,輕易就能超過1G,給檢索帶來困難。

大多數Linux發行版使用 logrotate 或 newsyslog 對日志進行管理。logrotate 程序不但可以壓縮日志文件,減少存儲空間,還可以將日志發送到指定 E-mail,方便管理員及時查看日志。

例如,規定郵件日志 /var/log/maillog 超過1G時轉儲,每周一次,那么每隔一周 logrotate 進程就會檢查 /var/log/maillog 文件的大小:

  • 如果沒有超過1G,不進行任何操作。

  • 如果在1G~2G之間,就會創建新文件 /var/log/maillog.1,并將多出的1G日志轉移到該文件,以給 /var/log/maillog 文件瘦身。

  • 如果在2G~3G之間,會繼續創建新文件 /var/log/maillog.2,并將 /var/log/maillog.1 的內容轉移到該文件,將 /var/log/maillog 的內容轉移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超過1G。

可以看到,每次轉存都會創建一個新文件(如果不存在),命名格式為日志文件名加一個數字(從1開始自動增長),以保持當前日志文件和轉存后的日志文件不超過指定大小。

logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目錄是對 /etc/logrotate.conf 的補充,或者說為了不使 /etc/logrotate.conf 過大而設置。

可以通過 cat 命令查看它的內容:

 $cat /etc/logrotate.conf
 # see "man logrotate" for details  //可以查看幫助文檔
 # rotate log files weekly
 weekly                             //設置每周轉儲一次
 # keep 4 weeks worth of backlogs
 rotate 4                           //最多轉儲4次
 # create new (empty) log files after rotating old ones
 create                             //當轉儲后文件不存儲時創建它
 # uncomment this if you want your log files compressed
 #compress                          //以壓縮方式轉儲
 # RPM packages drop log rotation information into this directory
 include /etc/logrotate.d           //其他日志文件的轉儲方式,包含在該目錄下
 # no packages own wtmp -- we'll rotate them here
 /var/log/wtmp {                    //設置/var/log/wtmp日志文件的轉儲參數
     monthly                        //每月轉儲
     create 0664 root utmp          //轉儲后文件不存在時創建它,文件所有者為root,所屬組為utmp,對應的權限為0664
     rotate 1                       //最多轉儲一次
 }

注意:include 允許管理員把多個分散的文件集中到一個,類似于C語言的 #include,將其他文件的內容包含進當前文件。

include 非常有用,一些程序會把轉儲日志的配置文件放在 /etc/logrotate.d 目錄,這些配置文件會覆蓋或增加 /etc/logrotate.conf 的配置項,如果沒有指定相關配置,那么采用 /etc/logrotate.conf 的默認配置。

所以,建議將 /etc/logrotate.conf 作為默認配置文件,第三方程序在 /etc/logrotate.d 目錄下自定義配置文件。

logrotate 也可以作為命令直接運行來修改配置文件。

以上就是關于“Linux日志有哪些類型”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

轮台县| 府谷县| 海伦市| 玉林市| 逊克县| 临西县| 磴口县| 和田县| 连平县| 东兰县| 通化市| 白银市| 辉县市| 西丰县| 鹤山市| 长治县| 玉山县| 海晏县| 灵丘县| 上饶市| 平顶山市| 延庆县| 通化县| 南昌市| 潼关县| 固原市| 宁晋县| 新巴尔虎右旗| 马公市| 肃宁县| 深泽县| 梨树县| 达拉特旗| 乌拉特前旗| 寿阳县| 千阳县| 松潘县| 奉贤区| 巴马| 慈溪市| 宁南县|