我有一个由我的业务应用程序生成的临时文件夹,并希望其中的文档仅可用于大约30分钟。我很想创建一个索引来跟踪每个文件的创建时间,但对于临时文件来说这会有点愚蠢,但它们并不太重要,但我希望它们根据上次修改时间来删除。PHP:一个很好的脚本来清除cron的临时文件?
我需要用我的Linux服务器来做什么?
我有一个由我的业务应用程序生成的临时文件夹,并希望其中的文档仅可用于大约30分钟。我很想创建一个索引来跟踪每个文件的创建时间,但对于临时文件来说这会有点愚蠢,但它们并不太重要,但我希望它们根据上次修改时间来删除。PHP:一个很好的脚本来清除cron的临时文件?
我需要用我的Linux服务器来做什么?
函数filemtime()将允许您检查文件的最后修改日期。您需要做的是每分钟运行一次您的作业,并检查它是否大于阈值,并根据需要确定是否为unlink()
。
$time = 30; //in minutes, time until file deletion threshold
foreach (glob("app/temp/*.tmp") as $filename) {
if (file_exists($filename)) {
if(time() - filemtime($filename) > $time * 60) {
unlink($filename);
}
}
}
这应该是最有效的方法,你的要求,改变的cron门槛为10分钟,如果你需要的情况下有很多文件不太准确。
您只需要在文件上调用stat,然后根据它们的mtime
决定是否要unlink
。
从cron
或anacron
每隔十分钟左右调用一次该脚本。
或者你可以使用tmpwatch
,这是一个专门为此目的而设计的程序。
很棒的代码感谢 – wired00 2012-04-04 03:03:02