读取从cron作业创建的文件

时间:2016-03-22 16:53:41

标签: php linux cron

我有一个小程序,可以通过cron每隔30秒-1分钟运行并生成一个新的文本转储。

program > dump.txt

但是我有另一个PHP Web程序,只要有人访问网页,就会以只读模式访问文本转储。问题是,我相信如果有人访问网站,那么cron作业运行的第二个网页可能只读取一半的文件,因为我认为Linux在使用>时不会锁定文件。

我在考虑做:

echo "###START###" > dump.txt
program >> dump.txt
echo "###END###" >> dump.txt

然后当PHP网页读取内存中的转储时,我可以做一个正则表达式来检查是否存在开始和结束标志,如果没有,则再次尝试,直到它读取带有两个标志的文件。

这会确保文件的完整性吗?如果没有,我如何确保在我阅读dump.txt时它将完好无损。

1 个答案:

答案 0 :(得分:4)

不是在目录中创建文件,为什么不在其他地方创建它?然后在写完数据之后,将其移到webroot中并覆盖之前的数据集。

示例:

sh create_some_data.sh > /home/cronuser/my_data.html
mv /home/cronuser/my_data.html /var/www/