8

i am new to cron job . i studied some basics about cron job . i can able to call php using cron tab. By using following command in /etc/crontab

  10 *    * * *   root    /usr/bin/php /var/www/PATH TO SCRIPT/email.php 

In email.php i have following code

 #!/usr/bin/php
 <?php
    mail ("examplemail@mail.com", "Cron Successful Public HTML!","Hello World from mycron.php!");
 ?>

For every 10mins i am getting mail. But i need to know is there any way to call cron job from php ( invoke cron from php) i get some idea by surfing but i am not able to figure out the exact way to do my job . Here is code which i used to add job by using php

   exec('echo -e "crontab -e \n2 * * * * /usr/bin/php /var/www/PATH TO THE SCRIPT/crontest1.php" ');

Its not working for me. can anyone please guide me how to call or add cron from php. so tat i can send mail by executing php file & can able change time interval in php file itself.

suganya
  • 235
  • 2
  • 4
  • 12

3 Answers3

10

From How can I set cron job through PHP script by Nick Clark:

This will add a script that runs every day at 9:30am.

exec('echo -e "`crontab -l`\n30 9 * * * /path/to/script" | crontab -');

You may run into problems with permissions if you are running this script from a web server. To get around this, I would suggest a different approach.

Here is one possible solution. Create a list of scripts that need to be run. You can save this in a text file or in a database. Create a script to read this list and run it every minute or every 5 minutes (using a cronjob). Your script will need to be smart enough to decide when to run the list of scripts and when to simply exit.

You can do like this..

Other links:

Install a cron job with a php script

How to invoke cron job from php script?

Community
  • 1
  • 1
Javascript Coder
  • 5,691
  • 8
  • 52
  • 98
  • i tried this , i just want to know after this i have to run my php file in browser ? i really don't have any idea how that cron will execute. can please explain it :( – suganya Jul 23 '12 at 13:08
0

You should be able to add it directly

echo "2 * * * * /usr/bin/php /var/www/PATH TO THE SCRIPT/crontest1.php\n" > /etc/cron.d/username
KingCrunch
  • 128,817
  • 21
  • 151
  • 173
0

Many environments do not permit writing to a text file from a php page called from the web. I agree that this is a security risk that one should not take.

I have a webpage save data to a MySQL table via a JQuery call to a php script. In Cron, I schedule another php script to, every so often, check data in MySQL table and execute whatever jobs necessary.

tony gil
  • 9,424
  • 6
  • 76
  • 100