猿问

执行 cron 时,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.'; 


白衣非少年
浏览 241回答 3
3回答

慕少森

也许您指定了错误的路径。尝试这个/path/to/php -f /path/to/script.php >> /path/to/logfile.log

aluckdog

@Amadan 给了你一个正确的提示。您可以按照以下步骤操作:ls -ld folder_u_try_to_save_to/这将向您显示哪个用户和组有权访问您的目标文件夹。如果是 your_user 则尝试使用以下命令运行 cron:su -l your_user -c 'crontab -e'如果它正常工作,请查看此答案 =>如何在 crontab 中指定由哪个用户运行脚本?关于如何为特定用户创建 cron 选项卡并将此用户添加到有权访问您尝试将数据保存到的文件夹的组中。

米琪卡哇伊

首先,请使用浏览器手动点击 CRON 文件。如果输出完美,那么不要担心你的代码。尝试检查 CRON 设置。
随时随地看视频慕课网APP
我要回答