php - cron php 作业无法在 Mac OS 中打开网络挂载卷上的文件
问题描述
我有一个 php 脚本,它读取从网络上另一台机器安装的日志文件。另一台机器是 PC,它通过 Mac 上的 /Volumes/log/ 安装。我已经验证了 /Volumes/log/ 文件夹的权限,并且可以读取、写入等。
当我通过以下方式直接从终端运行我的 php 作业时:
php /Users/server/Projects/logreader.php
它工作得很好。该脚本打开 /Volumes/log/debug.log 文件并可以读取它。但是,当我尝试通过 cron 作业运行完全相同的脚本时,出现以下错误:
警告:文件(/Volumes/log/debug.log):无法打开流:不允许操作
以下是 cron 作业:
* * * * * /usr/bin/php /Users/server/Projects/logreader.php > /Users/server/Desktop/output.txt 2&1
以下是 php 文件中用于打开日志的行:
$path = "/Volumes/log/debug.log";
$data = file("$path", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
我曾尝试以用户身份通过 sudo su 以 root 身份登录来创建 cron 作业,但两者都出现相同的错误。
ls -l 在日志文件上的输出:
-rwxrwxrwx 1 server staff 15179256 14 Jun 2021 /Volumes/log/debug.log
任何帮助将不胜感激。
解决方案
通过在系统偏好设置 -> 隐私和安全 -> 隐私中为 cron 提供“全盘访问”来解决此问题。谢谢大家
推荐阅读
- teradata-sql-assistant - 在 SQL 助手的用户空间创建宏和视图
- git - 如果其中一个合并到主分支,那么更新从特性分支获取的姊妹子特性分支的最佳方法是什么?
- abap - SAPSQL_PARSE_ERROR 异常的有意义的错误消息
- sql - 来自不同表的值的总和并放入另一列
- scala - 如何修复此错误“未找到:值 BMValsProcessor”
- symfony - Symfony PHPUnit - 注入依赖
- javascript - 在 UIkit 的 offcanvas 中组合两个选项
- yum - yum 对依赖项的 rpm 版本比较不正确
- stdout - 为什么使用 NSSM 配置的服务将错误消息输出到标准输出
- laravel-5.4 - 无需登录 Laravel 5.4 即可访问站点页面