我是使用 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.';
}
也许您指定了错误的路径。
试试这个
/path/to/php -f /path/to/script.php >> /path/to/logfile.log
首先,请使用浏览器手动点击 CRON 文件。如果输出完美,那么不要担心你的代码。尝试检查 CRON 设置。
@Amadan给了你一个正确的提示。下面您有步骤操作:
ls -ld folder_u_try_to_save_to/
这将显示哪个用户和组有权访问您的目标文件夹。如果是your_user则尝试使用以下命令运行 cron:
su -l your_user -c 'crontab -e'
如果它工作正常,请查看此答案 => 如何在 crontab 中指定由哪个用户运行脚本?
如何为特定用户创建 cron 选项卡,并将此用户添加到有权访问您尝试将数据保存到的文件夹的组中。