載入預設未被lense關聯的檔案

yinchuan發表於2013-05-22

參考文章: Manually associating lenses with files in Augeas

lensesaugeas用來分析檔案的模板,定義瞭如何將檔案解析成tree。預設的lenses儲存在/usr/share/augeas/lenses/dist/目錄。lenses檔案中用incl指令定義了關聯的配置檔案,即可以使用此lense解析的檔案。比如說:

[root@localhost ~]# grep incl /usr/share/augeas/lenses/dist/spacevars.aug
           . incl "/etc/havp/havp.config"
           . incl "/etc/ldap.conf"
           . incl "/etc/ldap/ldap.conf"
           . incl "/etc/libnss-ldap.conf"

當需要解析的配置檔案未被關聯時,就需要手動將配置檔案關聯的適用的lense,以便解析。比如在使用OpenLDAP做Linux集中式授權時,需要修改/etc/nslcd.conf,這個檔案預設沒有被lense關聯。以下命令沒有輸出表示沒有載入nslcd.conf這個檔案。

augtool> print /files/etc/nslcd.conf

比較常用的方法是在執行時修改augeas的metadata,新增檔案關聯資訊,載入檔案後就可以使用augeas命令操作了。

當互動式使用augtool時,使用如下命令:

augtool> set /augeas/load/Spacevars/incl[last()+1] /etc/nslcd.conf
augtool> load
augtool> print /files/etc/nslcd.conf
# a block of output # 

在指令碼中使用時,可以將命令通過管道輸入到augtool中。

[root@localhost ~]# cat <<EOF | augtool
> set /augeas/load/Spacevars/incl[last()+1] /etc/nslcd.conf
> load
> print /files/etc/nslcd.conf
> EOF
# block of output #

相關文章