logrotate 超过 x 小时的文件

logrotate 超过 x 小时的文件

这个 rotate.conf 有什么问题?

目标是仅删除超过四小时的文件

path/to/tokens/*.tkn {
    nosharedscripts
    prerotate
       if test `stat --format=%Y $1` -le $(( `date +%s` - 14400 ));
       then exit $?;
       fi;'
    endscript
    rotate 0
}

答案1

您声明您的目标是删除超过四小时的文件。使用 bash 4.3.46 (Ubuntu 16.04) 和 find 4.7.0,我能够使用带有十进制 mtime 的 find 命令:

find /path/to/tokens/ -name "*.tkn" -mtime 0.1666666

只需将 4/24 转换为十进制即可。您可以将其放入脚本中,然后使用 pipe-rm 或-exec rm {} \;根据需要执行。

它不使用logrotate,但它达到了删除超过(4/24)天的文件的目的。

编辑:奖励回合

显然还有一个-mmin选择。试穿一下这个尺寸:

find /path/to/tokens/ -name "*.tkn" -mmin +240 -exec rm {} \;

相关内容