我们说我有一个logrotate配置文件,如下所示:
prerotate
在echo
中,我想执行一个命令,我需要知道通配符的值。为了这个问题,让我们说我的命令非常简单,只是通配符值的func drawImageInRect(inputImage: UIImage, inRect imageRect: CGRect) -> UIImage {
UIGraphicsBeginImageContext(self.size)
self.draw(in:(CGRect(x:0.0, y:0.0, width:self.size.width, height:self.size.height)))
inputImage.draw(in:(imageRect))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
。
如何在不为通配符的每个可能值创建单独的配置定义的情况下执行此操作?有没有办法指出通配符的值?
答案 0 :(得分:1)
要为每个文件运行prerotate
而不是为整个组运行一次,您需要添加nosharedscripts
选项。然后将文件的名称作为第一个参数传递给脚本,因此如果您有像
#!/usr/bin/env bash
echo "$1"
然后你应该能够使用它:
"/data/logs/*.log" {
daily
rotate 5
compress
missingok
notifempty
nosharedscripts
prerotate
/path/to/your/script
endscript
}