我的服务器中有一个文件每5分钟更新一次。该文件通过ftp上传,并在上传完成后进行更新。 我正在使用php脚本来获取此文件的数据,我想确保每次我的脚本读取此文件时,它都是完整且有效的(它不会同时上传)。
以下代码是否安全且适合此检查?
if ( (($handle = fopen('/var/import/data.csv', 'r')) !== FALSE) && (filesize('/var/import/data.csv')>10) ) {
....do stuff....
}
答案 0 :(得分:1)
您应该在更新文件时编写一个锁文件,并在更新完成后将其删除。然后检查所说的锁文件,知道你是否可以读取它。
答案 1 :(得分:0)
我将ftp上传视为两个阶段
此大量可降低脚本查看不完整文件的几率。
或者,检查文件的修改时间(mtime
),并且仅在文件超过30秒时访问该文件。请确保此时间超过上传时间。