我正在尝试在一个exim日志上做一些处理,但是我的脚本没有收到作为参数的旋转的日志文件名,而是获取了原始的日志文件名(不再存在)
/var/log/exim/*log" { daily rotate 3650 delaycompress missingok notifempty nosharedscripts postrotate echo $0 $1 $2 >> /tmp/out /path/to/script $1 endscript }
/ tmp / out中的结果:
logrotate_script /var/log/exim/main.log
我在跑
logrotate --force -v /etc/logrotate.conf
输出似乎表明它正在重命名,然后运行:
renaming /var/log/exim/main.log to /var/log/exim/main.log-20160105 running postrotate script
这是在一个亚马逊Linux实例。 我已经用sharedscripts和nosharedscripts选项试了一下,没有什么区别。
我怎样才能得到旧的重命名的文件名?
如果结果日志文件是(logfilepath)。(log) – (20160105)格式化,也许你可以试试这个:
postrotate DATE=`date '+%Y%m%d'` /path/to/script $1-$DATE endscript
如果你想要(logfilepath) – (20160105)。(log)格式,你可以使用:
postrotate DATE=`date '+%Y%m%d'` LOGF=${1%*.} /path/to/script $LOGF-$DATE.log endscript
与$ 1返回日志文件path