Search code examples
phplaravelubuntucron

laravel artisan command cron job is not working on ubuntu server


I am new to Ubuntu server and i install cron job and then make new cron job and no idea why its not working. My application is in Laravel so i have to run artisan command through cron job! When i am in project through root cmd artisan-command run properly but in cron did not run it.

here is my cron job listed

I check the if its running or not like this:

# sudo grep -i cron /var/log/syslog|tail -3

This is the output:

Jan 21 09:30:01 liedergut CRON[5222]:(root) CMD (/path/to/php/bin/php /var/www/html/artisan shows:fetchrss >> /dev/null 2>&1)

Jan 21 09:30:01 liedergut CRON[5223]: (root) CMD (php /var/www/html/artisan shows:fetchrss >> /dev/null 2>&1)

Solution

  • Most certainly /var/www/html/php and /path/to/php/bin/php do not exist. You can find out where the php executable is by using whereis php (as you stated in your comment, it is /usr/bin/php). So to make your artisan command run every minute your cron line should be

    * * * * * /usr/bin/php /var/www/html/artisan shows:fetchrss >> /dev/null 2>&1
    

    I would suggest though to run Laravel's scheduler every minute:

    * * * * * /usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1
    

    and schedule your artisan command inside of Laravel, as written on Laravel's task scheduling documentation. This way you can manage your scheduled jobs or re-schedule them without having to edit/touch your crontab.