【发布时间】:2021-08-12 09:42:55
【问题描述】:
我正在尝试在 MAC OS 上运行我的第一个 cron 作业(我的本地主机正在运行 MAMP)。
要访问 crontab,运行 cron 作业,我在命令行中输入以下内容:
crontab -e
然后我按键盘上的i 进入插入模式以插入 cron 作业。
插入的 cron 作业是
* * * * * wget http://localhost:8888/project/cron.php
然后我按esc 并在命令行中输入:wq。
然后我收到一条消息:
installing new crontab
然后我检查了 crontab -l 正在运行的 cronjobs,它说:
* * * * * wget http://localhost:8888/project/cron.php
但是什么也没发生……
另外,下面是我在 cron.php 文件中作为测试脚本执行的脚本。它的目的是在项目根目录的文本文件中生成一个新的时间戳(cron 作业应该每分钟发生一次):
<?php
$file = dirname(__FILE__) . '/output.txt';
$data = "hello, it's " . date('d/m/Y H:i:s') . "\n";
file_put_contents($file, $data, FILE_APPEND);
?>
如果有人对为什么这不起作用有任何建议,我将不胜感激。
我已经在系统级别(即 macmini)和我的“项目”文件夹中尝试了上面显示的步骤。
我对所有这些都是全新的,所以任何帮助都会很棒。
【问题讨论】:
-
你有checked the logs吗?自己在终端中运行
wget http://localhost:8888/project/cron.php是否按预期工作?有时 cron 环境运行时配置了不同的路径。最好使用完整路径,例如/usr/local/bin/wget http://localhost:8888/project/cron.php(输入which wget查找完整路径) -
仅供参考,您无需通过
wget调用您的 PHP。直接执行PHP脚本通常更简单,例如* * * * * /path/to/php /path/to/project/cron.php -
嗨@Phil,这行得通-我做了
* * * * * /usr/bin/php /Applications/MAMP/htdocs/project/cron.php,如果您想这样做作为答案,我会将其标记为正确。 -
嗯,在添加可能有效的随机答案之前,最好先找出您原来的方法无效的原因
-
这些东西是作为哪个用户运行的?文件的权限和所有权很重要!