[英]cron job does not read & write to log file when executed the cron
我是使用 cron 作业的新手,但我已经学习了基础知识。 我可以使用 cron 选项卡调用 php。 手动运行时,代码被执行。 但是当它从 cron 作业运行时,php 无法读取日志文件。
$log = 'text.log';
$saved = 10;
$deleted_line = count(file($log))-$saved;
$chk_size = filesize($log)/1024;
if($chk_size >= 2048) {
$total_lines = file($log);
$final_lines = array_slice($total_lines, $deleted_line);
$file = fopen('amrut-all-projects.log', 'w');
$result = fwrite($file, implode('', $final_lines));
fclose($file);
} else {
echo 'Your File size less then 5kb.';
}
首先,请使用浏览器手动点击 CRON 文件。 如果输出完美,那么不要担心您的代码。 尝试检查 CRON 设置。
@Amadan 给了你一个正确的提示。 下面是您要执行的步骤:
ls -ld folder_u_try_to_save_to/
这将显示哪个用户和组有权访问您的目标文件夹。 如果是 your_user,则尝试使用以下命令运行 cron:
su -l your_user -c 'crontab -e'
如果它工作正常,请查看此答案 => 如何在 crontab 中指定要运行脚本的用户?
关于如何为特定用户创建 cron 选项卡并将此用户添加到有权访问您尝试将数据保存到的文件夹的组。
也许您指定了错误的路径。
尝试这个
/path/to/php -f /path/to/script.php >> /path/to/logfile.log
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.