执行 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.'; 
} 

也许您指定了错误的路径。

试试这个

/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 选项卡,并将此用户添加到有权访问您尝试将数据保存到的文件夹的组中。

最新更新