Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cron running but functionality not working

Tags:

php

cron

crontab

I have several PHP files to be run by cron. I set up the crons using command-

crontab crontab.txt

Inside the crontab.txt file, I have written cron commands like this:-

#(Updating tutor activities) - every minute
* * * * * /usr/bin/wget -O - -q -t 1 http://project/cron/tutor_activities.php

But none of the functionalities are working (database queries, sending reminder mails etc.). Running the URLs manually works.

Then I put my mail address in MAILTO and received the mails. In the mail, I received entire HTML source of the page. What is expected in the mail? Why are my functionalities not working?

Updates
If I change my cron commands to

 #(Updating tutor activities) - every minute
    * * * * * /usr/bin/wget http://project/cron/tutor_activities.php

Still no success and this comes in my mail -

--15:03:01--  http://project/cron/tutor_activities.php
          => `tutor_activities.php'
Resolving project... IP Address
Connecting to test.project|IP Address|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://project./ [following]
--15:03:01--  http://project./
          => `index.html.1'
Resolving project.... IP Address
Connecting to project.|IP Address|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://project/home/ [following]
--15:03:01--  http://project/home/
          => `index.html.1'
Resolving project... IP Address
Connecting to wproject|IP Address|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
index.html.1 has sprung into existence.
Retrying.

And lots of index.html.1 , index.html.2 files are accumulating in the root of my project. I do not want these files to be created. Just want the files to execute.

Same results if I use either of the two commands -

   * * * * * /usr/bin/wget http://project/cron/tutor_activities.php

   * * * * * wget http://project/cron/tutor_activities.php

running php command with MAILTO set sends me this error /bin/sh: php: command not found.

* * * * * php /path/to/test.php

So, I am not able to use php command.

I have written a simple mailto() inside my test.php. The mail does not come when run through cron (using both wget and php fails) but running the URL manually works.

My problem
To make it clear again, my main problem is that the functionality inside the cron files is not running. Creation of files is a secondary issue.

Any help would be appreciated

Thanks,
Sandeepan

like image 653
Sandeepan Nath Avatar asked Oct 08 '10 13:10

Sandeepan Nath


People also ask

What should I do if my cron job is not working?

If your cron job is not working but the command runs successfully when you run it yourself, here are a few steps you can take to help you reproduce the failure by running the command the way cron does. If the cron job is scheduled in your user crontab (e.g. crontab -e) the command will be run as you, not by root.

Why can’t I run a script from cron?

Another reason can be – not specifying the absolute path of the commands used in the script. When the script is run manually the environment variable such as PATH can be different than when running from the cron.

How do I run a cron job as root?

If the cron job is scheduled in your user crontab (e.g. crontab -e) the command will be run as you, not by root. If the job is in a systemwide crontab like /etc/crontab or a file in /etc/cron.d/ it's allowed to specify a "run as" user between the cron schedule and command.

Why is my crontab not working?

The first and foremost one is that your Cron daemon might not be working for some reason which will consequently cause your Crontab to fail. The environment variables of your system might not have been properly set up. There can be some errors in the script that you are trying to execute with your Crontab.


1 Answers

if you want to call an url as cronjob, you'll have to use somthing like wget. if it's a php-script on your server it would be easier to use php /...pathtomyscript.../cron/tutor_activities.php

like image 117
oezi Avatar answered Sep 24 '22 01:09

oezi