Crontab未在Ubuntu工作

6

我正在使用Ubuntu的crontab每天发送一个CSV文件到一个邮箱,但是它没有发送出去。为什么呢?

另外,我正在使用Laravel 4.2。

更新后的Crontab: crontab:

* * * * * /usr/bin/php /var/www/html/.../app/controllers/CronTask.php > /var/www/html/.../public/cronoutput.txt

生成csv文件并将其发送到电子邮件的功能位于CronTask.php中。我想要查看cron的日志,因此日志为cronoutput.txt。
问题是什么?

如果您直接在命令提示符处输入相同的命令,它是否有效? - lurker
@lurker 我在命令提示符上测试过了,结果返回"未找到命令"。 - hahahaha
你是否通过 PHP 解释器运行 PHP 脚本? - Orangepill
是的,我会先查看/var/www/app/controllers/CronTask.php这个文件。 - Orangepill
@Orangepill 哇,我在命令提示符上测试了一下,它不再返回“找不到命令”的错误了!但是仍然没有写日志和发送电子邮件。 :\ 我确认 CronTask.php 在正确的路径中。 - hahahaha
显示剩余13条评论
1个回答

4
因为我使用的是Laravel,所以需要使用Laravel Artisan命令在Ubuntu中运行crontab。我参考了这个网站来创建命令:https://sonnguyen.ws/laravel-4-and-crontab/
然后将所有的CSV生成和电子邮件发送放入fire函数中,就完成了。
app/commands/FirstCommand.php
  1. php artisan command:make FirstCommand
  2. 更改protected $name = 'user:active';
  3. 在fire函数中添加生成CSV和电子邮件的代码。例如:echo "User activated"
  4. 从getArguments函数中删除数组中的参数。
app/start/artisan.php
  1. Artisan::add(new FirstCommand);
在终端中:
crontab -e

crontab中的命令:

* * * * * /usr/bin/php /var/www/html/project/artisan user:active >> /var/www/html/project/public/cronoutput.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接