根据 logrotate 手册(https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html),logrotate 应该调用一个脚本并将旋转文件的文件名作为脚本的第一个参数使用此配置:
/var/log/piwik/*.log {
missingok
postrotate
/root/createStats.sh > /dev/null
endscript
}
Run Code Online (Sandbox Code Playgroud)
createStats.sh 脚本仅用于测试目的:
#!/bin/bash
echo "L: $1"
FNAME=/my.log
D=$(date)
echo "M $D ; $0 ; $1 ; $2" >> $FNAME
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的 /my.log 文件不包含 $1(或 $2)的任何值:
M Tue 26 Dec 05:16:38 CET 2017 ; /root/createStats.sh ; ;
M Tue 26 Dec 05:16:38 CET 2017 ; /root/createStats.sh ; ;
Run Code Online (Sandbox Code Playgroud)
我可能会遗漏一些东西。有没有人有想法?
我的 logrotate 版本是 3.8.7。
将 postrotate 视为脚本。您必须在其中传递 1 美元。尝试
/var/log/piwik/*.log {
missingok
postrotate
/root/createStats.sh $1 > /dev/null
endscript
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4811 次 |
最近记录: |