参考文章: 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 #