繁体   English   中英

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

[英]how to delete old files in a directory using php

我有一个用于数据库备份的目录,还有一个PHP脚本,它每天都会备份数据库。 但是一个月左右后,我将在备份目录中保存30个文件。 如何编写一个PHP脚本,每天删除旧的备份文件,以便目录中始终有10个备份文件? 当存储新备份时,最早的备份文件将被删除,依此类推...

您可以读取backups目录并删除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
    }
}

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

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

为什么要努力使用PHP? 查找命令和cron会解决问题的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM