我正在寻找一个允许我以编程方式修改 logrotate 配置文件的脚本。至少我希望它能够替换一个块,例如
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
在命令行或通过标准输入或通过文件给出一个新块(我不在乎)。它必须能够对任意配置文件进行操作。
如果它足够了解配置,我可以说类似的话,我真的很喜欢
logrotateupdate /etc/logrotate.conf /var/log/wtmp weekly
并让它做正确的事情(在上面的例子中删除每月并用每周替换它)。
这可能是其他人普遍知道的事情,但这是我从未见过的事情。
我的系统是linux(Ubuntu)。
Augeas是这方面的工具,但它的学习曲线相当陡峭。以下是设置
/var/log/wtmp
每周轮换的方法(/etc/logrotate.conf
为简洁起见,有些修剪):许多配置文件都有镜头(文件结构的描述是已知的)。一旦您了解了它的工作原理,编写新镜头就不会太难了。
Augeas 还与Puppet很好地结合在一起,构成了一个非常强大的配置管理系统。
除了 markdrayton 的回答,我还要补充一点,现在可以将 Augeas 用作解释器,因此您实际上可以编写具有以下内容的可执行脚本:
并执行它。您甚至可以使用自动保存选项 (
-s
) 缩短它: