用于记录的 CronTab 在 Laravel 中不起作用
CronTab for logging not working in Laravel
我正在测试一个简单的记录器命令以放入 crontab。当我 运行 php artisan schedule:run 命令时,我首先能够获得所需的输出。但是 运行 everyMinute() 的 crontab 不起作用。
我的 Crontab 条目是 * * * * * cd /Users/bikrambhandari/My Documents/Laravel Projects/Migration/artisan && php artisan schedule:run >> /dev/null2>&1
我的调度代码如下
protected function schedule(Schedule $schedule)
{
$schedule->command('visa:expire')
->everyMinute();
}
现在命令 php artisan visa:expire 代码将在日志文件中写入一行。我在 mac。并且希望每分钟都写入日志文件。
假设您的计划代码没问题,我猜您的 cron 作业没有被正确调用,因为您正在 CD 到的目录路径中有空格。
更改您的 crontab 行:
* * * * * cd "/Users/bikrambhandari/My Documents/Laravel Projects/Migration/artisan" && php artisan schedule:run >> "/Users/bikrambhandari/My Documents/crontab.log.txt" 2>>"/Users/bikrambhandari/My Documents/crontab-error.log.txt"
引号会让空格不作为参数定界符,所以 cd
应该成功,然后 php 开始。我将输出的重定向从 /dev/null
更改为文件 - 您可以在此处查看您的实际 schedule
函数是否有问题。一旦你知道一切正常,将重定向改回 /dev/null
编辑 -
再次更改重定向,以简化它并生成单独的日志文件。
我还会添加一行来仅触摸一个文件,这样您就知道 cron
确实是 运行 -
* * * * * touch /tmp/cron_is_running
我正在测试一个简单的记录器命令以放入 crontab。当我 运行 php artisan schedule:run 命令时,我首先能够获得所需的输出。但是 运行 everyMinute() 的 crontab 不起作用。
我的 Crontab 条目是 * * * * * cd /Users/bikrambhandari/My Documents/Laravel Projects/Migration/artisan && php artisan schedule:run >> /dev/null2>&1
我的调度代码如下
protected function schedule(Schedule $schedule)
{
$schedule->command('visa:expire')
->everyMinute();
}
现在命令 php artisan visa:expire 代码将在日志文件中写入一行。我在 mac。并且希望每分钟都写入日志文件。
假设您的计划代码没问题,我猜您的 cron 作业没有被正确调用,因为您正在 CD 到的目录路径中有空格。
更改您的 crontab 行:
* * * * * cd "/Users/bikrambhandari/My Documents/Laravel Projects/Migration/artisan" && php artisan schedule:run >> "/Users/bikrambhandari/My Documents/crontab.log.txt" 2>>"/Users/bikrambhandari/My Documents/crontab-error.log.txt"
引号会让空格不作为参数定界符,所以 cd
应该成功,然后 php 开始。我将输出的重定向从 /dev/null
更改为文件 - 您可以在此处查看您的实际 schedule
函数是否有问题。一旦你知道一切正常,将重定向改回 /dev/null
编辑 -
再次更改重定向,以简化它并生成单独的日志文件。
我还会添加一行来仅触摸一个文件,这样您就知道 cron
确实是 运行 -
* * * * * touch /tmp/cron_is_running