我有一个用于数据库备份的目录,以及一个每天对数据库进行备份的 PHP 脚本。但大约一个月后,我将在备份目录中有 30 个文件。我如何编写一个每天删除旧备份文件的 PHP 脚本,以便我的目录中始终有 10 个备份文件?存储新备份时,将删除最旧的备份文件,依此类推...
问问题
1697 次
3 回答
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
}
}
于 2012-09-22T11:06:11.303 回答
2
使用 PHP 备份进行备份后,您将遍历目录,然后删除最旧的备份文件:
$files = glob('backupfolder/*.bak');
if(count($files) > 10)
foreach($files as $file)
if(time() - filectime($file) > 10 * 24 * 60 * 60)
unlink($file);
于 2012-09-22T10:20:20.803 回答