【问题标题】:Can't add cron task in Laravel 5.0.5 on linux server无法在 Linux 服务器上的 Laravel 5.0.5 中添加 cron 任务
【发布时间】:2016-01-06 00:13:11
【问题描述】:

我正在使用 laravel 5.0.5 并尝试在 linux 服务器上运行 cron 任务。 我可以通过 ssh 手动运行命令,但无法将命令添加到 cron 任务。

例如:

php artisan test_cron 工作正常(将记录插入数据库)但是

php artisan test_cron 返回错误:

-bash: app: nie znaleziono polecenia (in English: command not found)

php artisan schedule:run - 运行所有命令一次,但

php artisan schedule:run 1>> /dev/null 2>&1 不工作

【问题讨论】:

  • Cron 可能会以您的 root 用户身份运行。您是否指定用于 Cron 任务的路径?
  • 您需要将完整路径放到 artisan 所在的位置。如php /home/user/site/artisan test_cron
  • 谢谢马克,我会试试这个。
  • @Jamesking56 谢谢,但我尝试了这个并且它的工作,但是当我在 php 之前添加五颗星时,我有错误:-bash: 360: without stars 命令执行一次。
  • @Gary 你在哪里运行这个?星星只有放在crontab中才会生效

标签: php laravel cron


【解决方案1】:

要添加 Laravel 的调度命令,首先打开你的 crontab,如下:

crontab -e

然后添加以下行,将 artisan 路径更改为您放置网站的位置:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

然后点击保存,您应该会收到来自crontab 的消息:

crontab: installing new crontab

然后你应该通过在 Laravel 中安排一个任务来确认这一点,每隔 5 分钟或其他时间给你发送一封电子邮件。

【讨论】:

  • 如果不需要提升权限,您为什么建议将作业添加到根 crontab?
  • 为什么要将它添加到特定用户?该任务不应属于单个用户,因为它是基于系统的任务。
  • 因为 OP 没有指定命令的作用,所以允许它以 root 身份运行可能会有安全风险。此外,它在哪里说它是基于系统的任务,即使它是为什么它仍然需要提升权限?
  • 正在运行的命令是 Laravel 提供的内置任务。它允许用户在 Laravel 的 Kernel.php 文件中定义自己的日程安排。如果有 3 名开发人员使用他的服务器,则该 cron 用于 Laravel 安装,而不是个人用户。
  • 点了。但根据我的经验,将所有开发人员帐户添加到/etc/sudoers 并不常见?因此,无论如何,只有特定用户可能具有访问权限,而具有 root 访问权限的用户并不真正关心作业放置在什么 crontab 中。
猜你喜欢
  • 2016-06-18
  • 2016-02-14
  • 2011-04-30
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 2017-08-04
  • 2013-03-31
  • 1970-01-01
相关资源
最近更新 更多