對 LDIF 檔案進行查錯
Novell 導入轉換導出實用程式可方便地將 LDIF 檔案導入 eDirectoryTM 或從 eDirectoryTM 中導出 LDIF 檔案。要正確進行 LDIF 導入,必須使用 Novell 導入轉換導出實用程式可以讀取和處理的 LDIF 檔案。本小節將介紹 LDIF 檔案的格式和語法,並提供正確的 LDIF 檔案示例。
了解 LDIFLDIF 是一種普遍使用的檔案格式,用來描述目錄信息或可對目錄執行的修改操作。LDIF 完全獨立於在所有特定目錄中使用的儲存格式,LDIF 通常用於從 LDAP 伺服器導出目錄信息或將數據導入 LDAP 伺服器。
LDIF 一般很容易生成。因此,可以藉助於一些工具(如 awk 或 perl)將專有格式的數據移入 LDAP 目錄。也可以編寫腳本來生成 LDIF 格式的測試數據。
LDIF 檔案格式Novell 導入轉換導出導入需要 LDIF 1 格式的檔案。以下是 LDIF 1 檔案的基本規則:
第一個非注釋行必須是版本號:1. 版本號後面跟有一個或多個記錄。 每個記錄由多個欄位組成,一行一個欄位。 各行使用換行符或回車符/換行符對分隔。 各記錄由一個或多個空行分隔。 存在兩種不同類型的 LDIF 記錄:內容記錄和更改記錄。對 LDIF 檔案可以包含的記錄數目沒有限制,但它們必須屬於同一類型。在同一個 LDIF 檔案中不能既有內容記錄又有更改記錄。 以井字元 (#) 開頭的行是注釋行,在處理 LDIF 檔案時將被忽略。
LDIF 內容記錄LDIF 內容記錄代表整個項的內容。以下是 LDIF 檔案示例,共包含四個內容記錄:
1 version: 1 2 dn: c=US 3 objectClass: top 4 objectClass: country 5 6 dn: l=San Francisco, c=US 7 objectClass: top 8 objectClass: locality 9 st: San Francisco 10 11 dn: ou=Artists, l=San Francisco, c=US 12 objectClass: top 13 objectClass: organizationalUnit 14 telephoneNumber: +1 415 555 0000 15 16 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US 17 sn: Michaels 18 givenname: Peter 19 objectClass: top 20 objectClass: person 21 objectClass: organizationalPerson 22 objectClass: iNetOrgPerson 23 telephonenumber: +1 415 555 0001 24 mail: 25 userpassword: Peter123 26
此 LDIF 檔案由以下部分組成:
表 135. LDIF 檔案組成部分
部分 | 說明 |
版本限定符 | LDIF 檔案的第一行包含版本號。冒號和版本號(當前定義為 1)之間可以無空格,也可以有多個空格。 如果缺少版本行,允許任何處理 LDIF 檔案的應用程式將該檔案的版本號假定為 0。但是也可能因為語法上的錯誤而拒絕處理該 LDIF。如果缺少版本行,處理 LDIF 的 Novell 實用程式將假定檔案的版本號為 0。 |
判別名限定符 | 每個內容記錄的第一行(如上面示例中的第 2、6、11 和 16 行)指定所代表的項的 DN。 DN 限定符必須使用以下兩種格式之一: dn:安全 UTF-8 判別名 dn::Base64 編碼的判別名 |
行分界符 | 行分隔設定可以是換行符或回車符/換行符對。這就解決了 Linux* 和 Solaris* 文本檔案(將換行符用作行分隔設定)與 MS-DOS 和 Windows* 文本檔案(將回車符/換行符對用作行分隔設定)間常見的不兼容問題。 |
記錄分界符 | 使用空行(如上面記錄中的第 5、10、15 和 26 行)作為記錄分界符。 LDIF 檔案中的每個記錄(包括最後一個記錄)必須使用記錄分界符(一個或多個空行)作為終止。雖然某些情況也會默認地接受沒有終止記錄分界符的 LDIF 檔案,但 LDIF 規範要求使用終止記錄分界符。 |
特性值限定符 | 內容記錄中所有其它的行均是值限定符。值限定符必須使用以下三種格式之一: 特性說明:值 特性說明::Base64 編碼的值 特性說明:<URL |