我想确保我有线条......
root: /dev/null
greenman: /dev/null
...在我的/etc/aliases
文件中,我一直在学习augtool
. 我知道我可以用 augtool 做这样的事情......
$ sudo augtool set /files/etc/aliases/15/name greenman
...但我不喜欢硬编码15
. 在某些系统上很有greenman: /dev/null
可能是第 10 个名称/值对。有没有办法避免在 中使用数字/files/etc/aliases/15/name
?
谢谢
在 Augeas 中使用
seq
条目(这些编号的条目,例如15
在您的情况下)可能有点棘手。augtool
仍在使用您可以为自己制作一个如下所示的 augtool 脚本:
shebang (
#!/usr/bin/augtool -sf
) 用于-s
在进行更改后自动保存,并-f
使用命令获取文件,使其成为可自执行的脚本,因此您可以使文件可执行并运行它:如果您不想使脚本可执行,也可以将其传递给
augtool
:如果不想使用
--autosave
,可以添加save
为脚本的最后一行。使用“真正的”编程语言
Bash 很好,但应对其限制可能会导致复杂的解决方案。Augeas 有很多语言的绑定。只需选择一个,编写代码就会变得更容易,因为您将能够使用持久的 Augeas 处理程序。这是一个使用 Ruby 的示例:
使用木偶
在 Puppet 中,最好的解决方案是依赖来自augeasproviders的提供者
mailalias
的类型。它使用 Augeas Ruby 库来安全地编辑:augeas
/etc/aliases
注意:
mailalias
是标准的 Puppet 类型,但默认提供程序不使用 Augeas。