如何使用php删除目录中的旧文件

时间:2012-09-22 10:18:52

标签: php mysql

我有一个数据库备份目录,以及一个每天备份数据库的PHP脚本。 但是一个月后我会在备份目录中有30个文件。 我如何编写一个每天删除旧备份文件的PHP脚本,以便我的目录中总有10个备份文件? 存储新备份时,将删除最旧的备份文件,依此类推......

3 个答案:

答案 0 :(得分:3)

您可以阅读备份目录并删除超过30天的每个文件。但是,我个人动态创建文件,每个文件都有这种格式:

database_dump_DD-MM-YYYY_HH:MM:SS.sql

所以我可以删除考虑文件名的文件。由于我不知道您的文件格式是什么,因此您可以将其删除:

$files = readdir(opendir('backups')); //read directory for files

foreach($files as $file){
    if(filemtime($file) > (time() + 2592000)){ //check if the file is older than 30 days
        unlink($file); //delete
    }
}

答案 1 :(得分:2)

使用PHP备份进行备份后,您将遍历目录,然后删除最旧的备份文件:

$files = glob('backupfolder/*.bak');
if(count($files) > 10)
  foreach($files as $file)
    if(time() - filectime($file) > 10 * 24 * 60 * 60)
      unlink($file);

答案 2 :(得分:0)

为什么要去使用PHP? find命令和cron可以解决问题