这个jail.conf 文件。我想用 sed 将 puppet 文件的 [maxretry = 6] 更改为 maxretry = 5。
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
[dropbear]
enabled = false
port = ssh
filter = sshd
logpath = /var/log/dropbear
maxretry = 6
我该怎么办?
我的傀儡命令。
exec { "fail2banadd":
命令 => '/bin/sed -i "/[ssh]/,/[dropbear]/s/maxretry = 6/maxretry = 5/"/etc/fail2ban/jail.conf',
}
我收到此错误。
=> 默认值:err:/Stage[main]//Exec[fail2banadd]/returns: 从 notrun 更改为 0 失败:/bin/sed -i "/[ssh]/,/[dropbear]/s/maxretry = 6/maxretry = 5/"/etc/fail2ban/jail.conf 返回 2 inste [0] 之一的 d 位于/tmp/vagrant-puppet-3/manifests/init.pp:76
最佳答案
版本 1
此 sed
解决方案仅更改 [ssh]
和 [dropbear]
之间的 maxretry 值:
$ sed -i"" '/\[ssh\]/,/\[dropbear\]/ s/maxretry = 6/maxretry = 5/' jail.conf
输出如下:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
[dropbear]
enabled = false
port = ssh
filter = sshd
logpath = /var/log/dropbear
maxretry = 6
版本 2
此变体删除了 [ssh]
和 [dropbear]
之间的 maxretry
条目,并将所有其他 maxretry = 6
条目更改为 maxretry = 5
:
sed -i"" 's/maxretry = 6/maxretry = 5/; /\[ssh\]/,/\[dropbear\]/ {/maxretry/d}' jail.conf
关于linux - 如何使用 sed 更改 puppet 文件的 [block] 之间的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24988242/