假设我有一个logrotate文件,如下所示:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
prerotate
echo "file name is: <file_name>"
endscript
}在prerotate中,我想执行一个命令,其中我需要知道通配符的值。为了解决这个问题,假设我的命令非常简单,只是通配符值的echo。
在不为通配符的每个可能值创建单独的配置定义的情况下,我如何做到这一点?有办法指向通配符的值吗?
发布于 2018-06-13 21:36:53
要为每个文件而不是只为整个组运行一次prerotate,您需要添加nosharedscripts选项。然后将文件的名称作为第一个参数传递给脚本,因此如果您有一个类似于
#!/usr/bin/env bash
echo "$1"那么您应该能够使用以下内容:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
nosharedscripts
prerotate
/path/to/your/script
endscript
}https://stackoverflow.com/questions/50846562
复制相似问题