我使用以下代码创建php变量的备份。
if(file_exists(old_backup.txt))
unlink('old_backup.txt');
copy('new_backup.txt', 'old_backup.txt');
$content = serialize($some_ar);
file_put_contents('new_backup.txt', $content);
new_backup.txt将包含当前变量dump,而old_backup.txt将在某个时间内转储变量。
转储大小不变,大约300Mb。但每次运行上面的代码时,磁盘使用量都会无限增加。当php脚本被杀死时,磁盘使用是正常的。 不确定文件处理程序仍然在哪里打开已删除的文件。 如何在不增加磁盘使用量的情况下使上述代码工作。
答案 0 :(得分:1)
不确定导致磁盘使用量增加的确切原因,因为您只发布了一个代码段,而不是完整的脚本。但是有一些事情肯定是不正确的:
if(file_exists(old_backup.txt))
应该是
if(file_exists('old_backup.txt'))
然后仅存在该文件并不意味着您可以unlink
它,您也应该检查权限。
话虽如此,这些并不是填充磁盘的好理由,但我们需要看看你从哪里得到$ some_ar变量以提供更好的建议。