︿
Top

前言

此檔功用在於將 syslog.conf 所定義的 Log 隨著時間不斷增大進行日誌轉儲的動作,每個小時會去定期檢查 /var/log/ 下的檔案 (由 /etc/crontab 可知),並將符合設定的 Log 壓縮備份及刪除老舊的檔案。


以下為 newsyslog.conf 內容及欄位說明:
/var/log/maillog - 640 7 * @T00 J - -

  1. logfile_name放置 Log 檔的絕對路徑及 Log 名稱 (一般都放在 /var/log/ 這個目錄下如 maillog、httpd-access.log...etc)。
  2. [owner:group]Log 檔案的擁有者及群組,預設為 root:wheel。
  3. mode產生 Log 檔的檔案權限 (一般為 640 或 600...etc)。
  4. count 產生的備份檔數目,例如數字為 7 則會有 0 ~ 7 個備份 Log 檔案及一個正在使用的 Log 檔。
    1. 舉例以 maillog 來說若數字為 7 則會有 maillog.0.bz2 ~ maillog.7.bz2 及目前正在使用的 maillog 檔案。
  5. size當 Log 檔至此指定欄位大小,則執行備份動作 (單位為 KB)。
    1. 星號 (*) 表示不管檔案大小一律執行備份動作。
  6. when設定要備份 Log 的時間,有如下二種表達方式。
    1. 表達方式1: 使用 ISO8601 日期格式 (日期前面要加上 @ 符號,日期和時間則以 T 分開)。
      1. 標準表達格式為 (假設時間是 2004-04-27 10:05:45) 則可寫成 20040427T100545,但通常我們都是設定到日期及時間。
      2. @T00:表示每日 0 時執行。
      3. @01T05:表示每個月的 01 日 05 時執行。
    2. 表達方式2:使用 FreeBSD 專屬時間格式 M W D (月、週、天、小時) 前面要加上 $ 符號。
      1. $M5D6:表示每個月第 5 天的早上 6 點。
      2. $W0D4:表示每週第一天 (星期天) 的早上 4 點。
      3. $MLH22:每月最後一天的晚上10點執行 (L 表示在某月的最後一天)。
  7. flags備份 Log 檔時壓縮格式。
    1. Z: 使用 gzip 壓縮。
    2. J: 使用 bzip2 壓縮。
    3. B: 使用二位元 (binary) 檔。
  8. [/pid_file]pid 檔的絕對路徑,有設定則會送 sig_num 給指定的程式一般不需要設定。若要備份 Apache Log 時就需要用到,且備份完 Apache Log 需要重新啟動,因此此欄位就需要設定為 /var/run/httpd.pid 否則當 Apache Log 備份完後會因為找不到 Apache Process ID 而無法產生新的 http-access.log。
  9. [sig_num]送給該 Daemon 程式的 Signal Number (預設為 SIGHUP)。
文章標籤: