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.
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)
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.