syslogd [選項]
選項
- -n:前景執行。
- -O FILE:日誌檔,預設 /var/log/messages。本地紀錄時,未符合規則、等級小於選項 -l、且不紀錄到 share memory 時使用。
- -l N:只紀錄小於等級 N (1-8) 的訊息。
- -S:較小的輸出,不放主機名稱和分類等級。
- -m MIN:MIN 週期丟 SIGALRM 給自己,在日誌加「-- MARK --」。程式未啟用。參考 alarm()。
功能 ROTATE_LOGFILE
- -s SIZE:rotation 大小 (KB),預設 200KB,0 不 rotation。
- -b N:保留 N rotated logs,預設 1,最大 99,0 不保留。
功能 REMOTE_LOG
- -R HOST[:PORT]:紀錄到遠端 IP 或主機的 PORT,預設 PORT 是 514/UDP。如果本地也要紀錄,選項要開 -L。
- -L:紀錄到遠端時,同時也紀錄到本地。
功能 SYSLOGD_DUP
- -D:丟棄重複的訊息。
功能 IPC_SYSLOG
- -C[size_kb]:未符合規則且等級小於選項 -l 的,紀錄到在 share memory 的 circular buffer,使用 logread 讀取。參考 shmget()、shmat()、shmdt()、shmctl()、semget()、semop()、semctl()。
功能 SYSLOGD_CFG
- -f FILE:指定設定檔,預設 /etc/syslog.conf。符合規則的就不會再紀錄到指定的日誌檔或 IPC share memory。
範例
- syslogd -R masterlog:514
- syslogd -R 192.168.1.1:601
syslogd 動作
- 讀取 /dev/log 訊息。
- 檢查有沒有重複。
- 紀錄到遠端話,送到遠端。沒開 -L 選項則回到 1.。
- 預設分類等級是 user.notice,嘗試解析訊息中 <數字>。
- 換行替代為空白,TAB 不變,其它 0x1F 以下的碼替代為 ^A、^B、...。
- 使用訊息中已有的 timestamp 或產生 timestamp。
- 沒設 -S 選項加上主機名稱和分類等級。
- 設定檔有符合的分類等級規則,本地紀錄完回到 1.。
- 符合紀錄等級以下,紀錄到 share memory,否則本地紀錄到選項 -O 的日誌檔。
本地紀錄的動作
- 如果不在同一秒,重新開啟檔案。
- 嘗試開啟檔案,失敗改開啟 /dev/console,再不行則用 stderr。
- 一般檔案進行 rotate 動作。
- 寫入。
參考
- busybox sysklogd 原始碼
- facilitynames[] 和 prioritynames[] 在 uClibc 的 include/sys/syslog.h
沒有留言:
張貼留言