执行“使用ipaddrof查找节点127.0.0.1并为其添加别名”的特定任务

执行“使用ipaddrof查找节点127.0.0.1并为其添加别名”的特定任务

我正在尝试使用augtool自动编辑我的/etc/hosts,因为我希望为 localhost 添加别名(以便我可以使用不同的主机名本地测试我的网络服务器)。

我一直在寻找各种软件来找到好的文档。

ipaddr我用of找到节点127.0.0.1并为其添加别名。我还想找到一些关于 Augeas 的好文档。

答案1

虽然向主机添加别名并不难,但通常更有趣的是确保主机条目具有别名,即使操作幂等。

以下是您如何使用 Augeas 做到这一点:

set /files/etc/hosts/*[ipaddr="127.0.0.1"]/alias[.="mycouchdb"] "mycouchdb"

如果别名尚不存在,则只会添加别名。

解释:

alias[.="mycouchdb"]引用具有值的别名mycouchdb(因为.引用当前节点)。

当还没有带有值的别名时mycouchdbalias[.="mycouchdb"]将不匹配任何内容,Augeas 将创建一个带有标签alias和值的节点mycouchdb。当节点不存在时的规则是使用不带过滤器的路径标签,在本例中alias,因此它创建一个新的标签节点并为其分配值mycouchdb

当已经存在别名时,表达式将匹配,并且 set 命令会将值替换为mycouchdb,这不会执行任何操作。

答案2

执行“使用ipaddrof查找节点127.0.0.1并为其添加别名”的特定任务

augtool -b -s set '/files/etc/hosts/*[ipaddr = "127.0.0.1"]/alias[last()+1]' mycouchdb

这会在文件中查找任何具有子节点 of 的/etc/host/节点( )并添加一个of*ipaddr=127.0.0.1aliasmycouchdb

文档

这里解释了路径https://github.com/hercules-team/augeas/wiki/Path-expressions它使用 XPath。

抱歉我找不到其他好东西了。

相关内容