動態檔名支援

使用動態檔名支援來指定檔名型樣而不是實際檔名。

部分應用程式會建立可能隨時變更的輸出檔名稱。 名稱會根據特定準則變更,如當日、當月、當年或包含遞增序號的檔名。 在這些情況下,您可以指定檔名型樣,而不是實際檔名。 當您指定檔名型樣時,有兩個可辨識的型樣格式:
  • 正規表示式(偏好)。
  • IBM® Tivoli® Universal Agent 動態檔名語法(已淘汰)。

正規表示式檔名型樣

若要指定檔名型樣,您可以根據(ICU 正規表示式)中所記載的 International Components for Unicode (ICU) 語法,使用正規表示式。 若要使用此功能,您必須在「進階日誌檔屬性群組資訊」頁面上,選取檔名符合正規表示式勾選框。 當您指定正規表示式型樣時,您還必須從「進階日誌檔屬性群組資訊」頁面的當多個檔案符合時清單中選取選項,以指定用於選取最新相符檔案的準則。

註: 正規表示式是指定檔名型樣的偏好方法。

如需如何配置進階日誌檔屬性群組內容的相關資訊,請參閱(監視日誌檔),步驟 (6)。 例如,如果您已指定檔名型樣:

d:\program files\logs\tivoli.*

此型樣會在 d:\program files\logs 目錄中搜尋以 tivoli 開頭的檔名。 只能針對檔名部分而不是路徑名稱指定正規表示式。

動態檔名語法

使用動態檔名語法,一次僅可監視一個檔案。 「檔案資料提供者」會檢查設計路徑位置中的所有檔案,以探查符合所定義型樣的檔案。 「檔案資料提供者」一律監視最新的相符檔案,其基於具有最高號碼或日期時間值的相符檔名。 進行監視的適當檔案由檔名所決定,而不是檔案建立或其他準則。

可以針對具有任何部分數目的檔名指定型樣。 例如,Log{###} 符合一部分檔名,如 Log010Log456。 在多部分檔名中,可在檔名的任何部分或多個部分中指定型樣字元。 例如,aaa.bbb{???}.ccc 是有效的型樣,而 aaa.bbb{???}.ccc{###} 也是有效的。

註: 正規表示式而非動態檔名語法才是指定檔名型樣的偏好方法。如需正規表示式的相關資訊,請參閱正規表示式檔名型樣

下列範例說明檔名型樣規格:

{########}.abc
符合長度為 8,且副檔名為 .abc 的數字檔名,例如,10252006.abc10262006.abc。 因為 10262006 大於 10252006,所以會監視檔案 10262006.abc
{########}.*
符合長度為 8 的數字檔名,並忽略副檔名。 範例包括 20061025.log20061101.log10252006.abc。 因為 20061101 是最大的數字,所以會監視檔案 20061101.log
{######??}.abc
符合長度為 8,且副檔名為 .abc 的數字檔名,並忽略名稱部分的最後兩個位置。 範例包括 02110199.abc02110200.abc021101AZ.abc。 因為 021102 是最大的數字,所以會監視檔案 02110200.abc
Console.{######}
符合在名稱部分包含 Console 且副檔名部分中有 6 位數數字的檔名。 範例包括 Console.000133Console.000201Console.000134。 會對檔案 Console.000201 進行監視。
IN{######}.log
符合以 IN 開頭、後面接著六個數字且副檔名為 .log 的檔名。 範例包括 IN021001.logIN021002.logIN021004.log。 會對檔案 IN021004.log 進行監視。
PS{###}FTP.txt
符合以 PS 開頭、後面接著三個數字以及 FTP,且副檔名為 .txt 的檔名。 範例包括 PS001FTP.txtPS005FTP.txtPS010FTP.txt。 會對檔案 PS010FTP.txt 進行監視。
請遵循以下準則來建立檔名型樣:
  • 在檔名中使用大括弧 {} 以含括型樣字元。 大括弧內型樣字元的顯示狀態指出正在使用檔名型樣。
  • 使用星號 (*) 為萬用字元以忽略檔名中的副檔名或全部尾端字元。 例如,Myapp{###}.log* 指定任何以 Myapp 開頭,後面接著三個數字及 .log 的檔名,都是符合項目,不管後面是什麼。

    星號必須在大括弧 ({ }) 之後指定,而不能用於檔名開頭處。 當您在副檔名中使用星號時,星號必須由其本身使用。

    萬用字元 (*) 的正確用法範例:
    err{??}.*
    error{$}.*
    萬用字元 (*) 的不正確用法範例:
    error.20*
    星號 (*) 前無任何大括弧。
    error*.{###}
    星號不可用於檔名末尾。
    error.*
    星號 (*) 前無任何大括弧。
  • 如果已定義特定的副檔名,則僅考量具有相同副檔名的檔案。
  • 使用 # 記號指出檔名的每一個數字元素。
  • 使用問號以排除命名慣例的每一個元素,這些元素在決定適當的檔名時無法提供為搜尋準則。
  • 使用錢幣符號 ($) 代表任何字元或無字元。 例如,如果您想要符合名為 LogLogA 的兩個檔案,請指定 Log{$}。 錢幣符號具有數個使用限制。 當您對檔名字首使用一或多個錢幣符號(如 {$$$$$$}_abc.log)時,錢幣符號的數目必須與檔名中該位置的字元數目完全相符。 此外,您無法在檔名型樣中的多個位置指定錢幣符號,例如,{$$$}b{$$$}.log 不符合 abc.log。 鑒於這些錢幣符號限制,如果檔名中存在不確定數目的字元,請使用正規表示式檔名型樣。
  • 在大括弧中含括的 # 記號及問號總數非常重要。 必須完全符合檔名的部分。 例如,型樣 AA{####} 會指示「檔案資料提供者」尋找 AA0001 之類的檔案。 不考量 AA001AA00001 之類的檔名。
  • 確切的檔名型樣(常數與數值部分)必須確切符合檔名。 例如,型樣 AA{###} 會指示「檔案資料提供者」檢查檔案 AA101。 不考量 XAA101AA222XAA55555 之類的檔名。
  • 使用保留型樣字串 {TIVOLILOGTIME} 替換 Tivoli Monitoring 代理程式或伺服器日誌檔中的十六進位時間戳記及檔案序號。 在您執行 Tivoli Monitoring 元件的自我監視時,此型樣字串非常有用。 例如,如果您想要監視 /opt/IBM/ITM/logs 目錄中的最新 監視伺服器 日誌,則可以指定檔名型樣:
    /opt/IBM/ITM/logs/Host1_ms_{TIVOLILOGTIME}.log
    如果 Host1_ms_452053c0-01.logHost1_ms_451f11f4-01.logHost1_ms_45205946-01.logHost1_ms_451f11f4-02.log 存在於 /logs 目錄中,則會選取 Host1_ms_45205946-01.log 檔案進行監視。

若要精確地指定包含日期部分(年、月及日)的檔名,請使用大寫字母 Y、M 及 D。這些字母必須在大括弧內指定;否則它們會被視為檔名中的文字字元。

請參閱下列範例:

{YYYYMMDD}.log
指定 20060930.log20061015.log 之類的檔名。
{MMDDYY}.log
指定 101106.log110106.log 之類的檔名。
{DDMMYYYY}.log
指定 01092006.log15082006.log 之類的檔名。
{DDMMMYY}.log
指定 24Jan0713Sep06 之類的檔名。
{MM-DD-YY}.log
指定 11-02-06 或 04-29-07 之類的檔名。 (-) 分隔字元在日期欄位中會被忽略,無需問號型樣字元即可跳過它。
MY{YYDDD}.log
指定 MY06202.logMY06010.logMY04350.log 之類的檔名。

存在複雜的情況,如日期欄位內嵌在較長的檔名中,而先前範例中的日期型樣不夠用。 對於複雜的情況,請建立混合使用 # 記號與問號的型樣,並仍執行數值比較,以選取最新的檔案以進行監視。 例如,型樣 ABC{?####?##?##?##?##?##?}XYZ.TXT 可用於 ABC 2006-04-20 11_22_33 XYZ.TXT 之類的檔名。 在此範例中,您僅對 #- 標示的數字感興趣,而問號會充當位置保留元,以忽略檔名中的其他字元。

「檔案資料提供者」會定期檢查目標路徑位置中是否有符合所定義檔案型樣的新檔案。 偵測到符合型樣的較新檔案時,「檔案資料提供者」會自動將應用程式監視切換為監視新檔案。 「檔案資料提供者」會在下列情況下搜尋最佳符合檔案:
  • 「檔案資料提供者」最先啟動。
  • 目前監視的檔案可能因為重新命名或刪除而不再存在。
  • 現有檔案內容可能因為重新撰寫而變更。
  • 檢查間隔已過期。 預設間隔是 10 分鐘。 您可以透過指定環境變數,將間隔變更為較長或較短的間隔值。
    KUMP_DP_FILE_SWITCH_CHECK_INTERVAL=number-of-seconds