站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

newsyslog.conf

前言

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

安裝及設定

以下為 newsyslog.conf 內容及欄位說明:

logfile_name[owner:group]modecountsizewhenflags[/pid_file][sig_num]
/var/log/maillog_6407*@T00J__
  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 給指定的程式一般不需要設定。
    1. 若要備份 Apache Log 時就需要用到,且備份完 Apache Log 需要重新啟動,因此此欄位就需要設定為 /var/run/httpd.pid 否則當 Apache Log 備份完後會因為找不到 Apache Process ID 而無法產生新的 http-access.log.
  9. [sig_num]:送給該 Daemon 程式的 Signal Number (預設為 SIGHUP)

參考

[man newsyslog]

[twbsd.org - 附錄 A /etc 目錄下的檔案介紹]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com