使用logrotate 管理Linux日誌檔(zt)
Linux 的系統日誌一般被記錄在/var/log/ 目錄下 。日誌紀錄配置文件為 /etc/syslog.conf .
/var/log/ 目錄:
./var/log 記錄了幾乎所有的log , 但是沒有記錄ftp log , 我們可以透過 /etc/ftpaccess 設定及修改來達到這個目的 。
boot.log 啟動資訊
cron 紀錄排程執行的log .
/var/log/messages messages 日誌是核心系統日誌檔案。它包含了系統啟動時的引導訊息,以及系統執行時的其他狀態訊息。IO 錯誤、網路錯誤和其他系統錯誤都會記錄到這個檔案中。其他資訊,比如某個人的身份切換為 root,也在這裡列出。如果服務正在執行,比如 DHCP 伺服器,您可以在 messages 檔案中觀察它的活動。通常,/var/log/messages 是您在做故障診斷時首先要檢視的檔案。
/var/log/XFree86.0.log 這個日誌記錄的是 Xfree86 Xwindows 伺服器最後一次執行的結果。如果您在啟動到圖形模式時遇到了問題,一般情況從這個檔案中會找到失敗的原因。
/var/log/secure 紀錄登陸的ip, 時間,登陸方式等 。
檢視日誌的工具
dmesg 使用 dmesg 命令可以快速檢視最後一次系統引導的引導日誌。通常它的內容會很多,所以您往往會希望將其透過管道傳輸到一個閱讀器。 dmesg | more 上面的命令將以分頁的方式顯示引導資訊。 tail 有時,當某些行為發生時,您會希望密切關注一個日誌檔案。Tail 命令設計用於顯示文字檔案的最後幾行。使用 -f 開關,當日志增加新的內容時,tail 將繼續顯示新的輸出。 tail -f /var/log/messages
/etc/syslog.conf 日誌配置檔案內容 :
其中記錄的內容,注意 # 後面的解釋 :
# Log all kernel messages to the console. (紀錄所有的核心資訊到字元裝置)
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher. (紀錄除了mail資訊之外的所有log)
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access. (紀錄受到限制的訪問)
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff (紀錄cron排程執行的log)
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file. (在一個專門的檔案中儲存)
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log (記錄啟動資訊)
local7.* /var/log/boot.log
二. Linux 的系統日誌一般內容 。
日誌檔案記錄例子(以messages為例):
以下log messages 是從目前執行的SFC系統中摘錄下來的 messages, messages.1, messages.2 , messages.3 , messages.4 ,紀錄所有Linux系統相關變化及狀態,使用者登入資訊等 。
[root@dmdii-node2 log]# pwd
/var/log
[root@dmdii-node2 log]#
[root@dmdii-node2 log]# vi messages.1
messages.1 檔案內容
Aug 7 04:03:02 dmdii-node1 syslogd 1.4.1: restart. (最開始的一句)
......
Aug 14 04:03:02 dmdii-node1 cups: cupsd startup succeeded (最後的一句)
messages.2 檔案內容
Jul 31 04:03:02 dmdii-node1 syslogd 1.4.1: restart. (最開始的一句)
.......
Aug 7 04:03:02 dmdii-node1 cups: cupsd startup succeeded (最後的一句)
messages.3 檔案內容
Jul 24 04:03:02 dmdii-node1 syslogd 1.4.1: restart. (最開始的一句)
.......
Jul 31 04:03:02 dmdii-node1 cups: cupsd startup succeeded (最後的一句)
messages.4檔案內容
Jul 17 04:03:02 dmdii-node1 syslogd 1.4.1: restart. (最開始的一句)
.......
Jul 24 04:03:02 dmdii-node1 cups: cupsd startup succeeded (最後的一句)
messages 檔案內容
Aug 14 04:03:02 dmdii-node1 syslogd 1.4.1: restart.
Aug 15 08:01:42 dmdii-node1 login(pam_unix)[7840]: session opened for user oracle by (uid=0)
Aug 15 08:01:42 dmdii-node1 -- oracle[7840]: LOGIN ON pts/0 BY oracle FROM 10.134.48.86
Aug 15 08:17:06 dmdii-node1 su(pam_unix)[8024]: session opened for user root by oracle(uid=500)
Aug 15 08:18:42 dmdii-node1 login(pam_unix)[8086]: session opened for user oracle by (uid=0)
大家透過觀察上面每個日誌最開始的一句和最後的一句的時間差, 注意到日誌紀錄是輪換的,而且是有規律的輪換 (這裡是weekly輪換,即達到一週時間的messages檔案中的log會轉儲到messges.1 或其他messages.2,…. 等檔案中) 。 syslogd 1.4.1: restart 表示重新初始化系統日誌守護程式 syslogd 。
三. Logrotate 的配置 。
Logrotate顧名思義就是 log rotate , 即日誌的輪換 。 Logrotate是Linux系統自身帶的一個日誌輪循程式,它的執行程式所在的目錄是/usr/sbin/logrotate ,是專門對各種系統日誌(syslogd,mail)進行輪循的程式。該程式是由執行程式的服務crond來每天凌晨4:02執行的(可以回過頭看看上面二中的一些日誌的開始發生時間都是04:03, 抱歉,這裡我們在深圳的測試server比實際時間早了點,^_^), 可以在/etc/cron.daily目錄下可以看到logrotate檔案
Logrotate 用來將舊的日誌檔案刪除,並建立新的日誌檔案, 叫做”轉儲” 。
我們可以根據日誌檔案大小,也可以根據天數來轉儲(比如上面的例子是一週轉儲一次) 。 logrotate 程式還可以用於壓縮日誌檔案,以及傳送日誌到指定的E-mail 。
logrotate 的配置檔案是 /etc/logrotate.conf。主要引數如下表:引數 功能
compress 透過gzip 壓縮轉儲以後的日誌
nocompress 不需要壓縮時,用這個引數
copytruncate 用於還在開啟中的日誌檔案,把當前日誌備份並截斷
nocopytruncate 備份日誌檔案但是不截斷
create mode owner group 轉儲檔案,使用指定的檔案模式建立新的日誌檔案
nocreate 不建立新的日誌檔案
delaycompress 和 compress 一起使用時,轉儲的日誌檔案到下一次轉儲時才壓縮
nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address 專儲時的錯誤資訊傳送到指定的Email 地址
ifempty 即使是空檔案也轉儲,這個是 logrotate 的預設選項。
notifempty 如果是空檔案的話,不轉儲
mail address 把轉儲的日誌檔案傳送到指定的E-mail 地址
nomail 轉儲時不傳送日誌檔案
olddir directory 轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在同一個檔案系統
noolddir 轉儲後的日誌檔案和當前日誌檔案放在同一個目錄下
prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
daily 指定轉儲週期為每天
weekly 指定轉儲週期為每週
monthly 指定轉儲週期為每月
rotate count 指定日誌檔案刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份
tabootext [+] list 讓logrotate 不轉儲指定副檔名的檔案,預設的副檔名是:.rpm-orig, .rpmsave, v, 和 ~
size size 當日志檔案到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB (sizek)或者MB (sizem).
四. 預設Logrotate 的配置 。
logrotate 預設的配置檔案 /etc/logrotate.conf。
Red Hat Linux 預設安裝的檔案內容是 :
預設的配置一般放在logrotate.conf 檔案的最開始處,影響整個系統。在本例中就是前面12行。
weekly 指定所有的日誌檔案每週轉儲一次。 rotate 4 指定轉儲檔案的保留 4份。
errors root 指定錯誤資訊傳送給root。
create 指定 logrotate 自動建立新的日誌檔案,新的日誌檔案具有和原來的檔案一樣的許可權。
#compress 指定不壓縮轉儲檔案,如果需要壓縮,去掉註釋就可以了。
Include /etc/logrotate.d 告訴 logrotate 讀入存放在/etc/logrotate.d 目錄中的日誌轉儲引數,當系統中安裝了RPM 軟體包時,使用include 選項十分有用。RPM 軟體包的日誌轉儲引數一般存放在/etc/logrotate.d 目錄。 include 選項十分重要,一些應用把日誌轉儲引數存放在 /etc/logrotate.d 。典型的應用有:apache, linuxconf, samba, cron 以及syslog。 這樣,系統管理員只要管理一個 /etc/logrotate.conf 檔案就可以了。
五. Logrotate 的執行 。
1. 判斷系統的日誌檔案,建立轉儲計劃以及引數,透過cron daemon 執行下面的程式碼是 Red Hat Linux 預設的crontab 來每天執行logrotate。
#/etc/cron.daily/logrotate (即/etc/cron.daily/logrotate 每天執行內容如下)
#! /bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
詳細內容可以參考:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245335/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用logrotate 管理Linux日誌檔logrotateLinux
- 使用logrotate管理日誌檔案logrotate
- 使用logrotate 管理日誌檔案(轉)logrotate
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- Linux日誌管理神器logrotate使用簡介Linuxlogrotate
- 如何使用 logrotate 命令保持日誌檔案更新logrotate
- 日誌管理工具logrotatelogrotate
- 使用logrotate配置日誌輪詢logrotate
- 使用logrotate來壓縮日誌(轉)logrotate
- 華納雲:Linux中如何用logrotate管理每日增長的日誌Linuxlogrotate
- linux 小工具之:日誌切割(logrotate)Linuxlogrotate
- Linux 下 logrotate 日誌輪詢操作梳理Linuxlogrotate
- 日誌切分神器--logrotatelogrotate
- tomcat日誌切割-logrotateTomcatlogrotate
- 管理日誌檔案
- Logrotate日誌切割報錯 檔案不再同一個使用者組下logrotate
- 使用logrotate命令管理listener.log檔案logrotate
- linux日誌管理Linux
- nginx1.24配置logrotate日誌切割Nginxlogrotate
- Oracle RAC中使用RMAN管理歸檔日誌Oracle
- oracle 日誌檔案管理Oracle
- 日誌檔案的管理
- [zt] SQL Server日誌檔案總結及日誌滿的處理SQLServer
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- Linux 日誌管理指南Linux
- 日誌檔案和歸檔管理
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- sybase iq日誌檔案管理
- Oracle歸檔日誌管理技巧Oracle
- linux日誌管理(三)(轉)Linux
- linux的日誌檔案Linux
- 對日誌檔案組和日誌檔案組成員的管理
- zt:Tips--歸檔日誌常用格式說明
- oracle之 Oracle歸檔日誌管理Oracle
- 監聽日誌檔案的管理
- Oracle archive log 歸檔日誌管理OracleHive
- data guard 歸檔日誌管理 (standby)
- data guard 歸檔日誌管理 (primary)