Cron使缓存文件不可写

时间:2014-07-29 22:15:32

标签: php permissions cron centos

我有一个cron工作,我设置每隔五分钟运行一次。因为这个cron作业没有通过apache运行,我相信如果它最终触及网站的服务器端缓存文件(它经常这样做),那些缓存文件最终不再被apache写入,所以我得到了所有这些错误是每次我在浏览器中运行网站时都无法写入缓存文件。有什么方法可以让它没有这个问题吗?在Centos 6.4上运行网站,如果相关的话。

1 个答案:

答案 0 :(得分:2)

此问题至少有两种解决方案,都涉及使用chmodchown

解决方案1:

将你的cronjob运行的任何内容移动到它自己的shell脚本中,并告诉cron改为运行你的shell脚本。

运行原始命令后,运行chmodchown以根据需要更改权限。

#!/bin/sh
printf "Do your stuff here\n"
DIR_ROOT="./your-dir-here/"
find $DIR_ROOT -type f -print0 | xargs -0 chmod 664 # make all files user+group r+w
find $DIR_ROOT -type d -print0 | xargs -0 chmod 775 # make all directories user+group r+w+x
chown apache:apache -r $DIR_ROOT

解决方案2:

您可以在运行cronjob的命令中添加分号,然后添加chmodchown,而不是使用shell脚本。

*/5 * * * * /my/five/minute/script.sh; chmod 664 ./some-file; chown apache:apache ./some-file

希望有所帮助。

注意:这两种解决方案都是故意不一样的,我希望你能够通过这种方式来思考。