logrotate 通配符的值
Value of logrotate wild card
假设我有一个如下所示的 logrotate 配置文件:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
prerotate
echo "file name is: <file_name>"
endscript
}
在 prerotate
中,我想执行一个我需要知道通配符值的命令。为了这个问题,假设我的命令非常简单,只是通配符值的 echo
。
如何在不为通配符的每个可能值创建单独的配置定义的情况下执行此操作?有没有办法指向通配符的值?
要运行 prerotate
为每个文件而不是为整个组只添加一次,您需要添加nosharedscripts
选项。然后文件名作为第一个参数传递给脚本,所以如果你有一个像
这样的脚本
#!/usr/bin/env bash
echo ""
那么你应该可以使用这个:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
nosharedscripts
prerotate
/path/to/your/script
endscript
}
假设我有一个如下所示的 logrotate 配置文件:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
prerotate
echo "file name is: <file_name>"
endscript
}
在 prerotate
中,我想执行一个我需要知道通配符值的命令。为了这个问题,假设我的命令非常简单,只是通配符值的 echo
。
如何在不为通配符的每个可能值创建单独的配置定义的情况下执行此操作?有没有办法指向通配符的值?
要运行 prerotate
为每个文件而不是为整个组只添加一次,您需要添加nosharedscripts
选项。然后文件名作为第一个参数传递给脚本,所以如果你有一个像
#!/usr/bin/env bash
echo ""
那么你应该可以使用这个:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
nosharedscripts
prerotate
/path/to/your/script
endscript
}