我在我的 CentOS 盒子上安装了 Augeas,并从 augtool 得到了意想不到的行为。
嘭,
[root@boxen tmp]# ll
-rw-r--r--. 1 root root 27 Sep 19 11:58 /tmp/my.conf
[root@boxen tmp]# cat /tmp/my.conf
OptionOne no
OptionTwo yes
现在我想使用 augtool
将 OptionOne 从 no
更改为 yes
。
[root@boxen tmp]# augtool set /tmp/my.conf/OptionOne yes
[root@boxen tmp]# augtool save
[root@boxen tmp]# cat my.conf
OptionOne no
OptionTwo yes
augtool 未将配置更改写入文件。 我没有看到任何错误。 我做错了什么?
/tmp/my.conf
不是任何 conffile 的标准位置,因此您需要指定要使用的镜头(即解析器),以便 Augeas 知道要应用哪种语法(有大量不同的 conffile 语法,Augeas 目前支持 150 多种开箱即用!
如果您知道要使用哪种镜头,并且使用的是Augeas>= 1.0.0,则可以使用--transform
。
Sshd.lns
镜头看起来与您的格式相似,因此您可能需要使用此镜头。
也:
- 提交更改需要
--autosave
,因为您没有显式调用save
命令; - 您需要使用
/files/tmp/my.conf/OptionOne
来更改节点的值,因为映射的文件在 Augeas 树中的/files
下公开。
所以:
# augtool --autosave --transform "Sshd.lns incl /tmp/my.conf" set /files/tmp/my.conf/OptionOne yes
Saved 1 file(s)
# cat /tmp/my.conf
OptionOne yes
OptionTwo yes