basic cronjob

Hi,

How do I call a function via a cronjob (using php). I am using cpanel.For example I want to print hello world once an hour . The cronjob example are complicated and i cant get  basic function working.

This calls a function but it is for a xero conection so it is more than what I need.
cd /home/aptutori/public_html/mytestserver/app && Console/cake invoicing uploadstatscronjob
jagguyAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jan SpringerCommented:
This is a sample cron job in /etc/cron.d that runs every hour:

0 * * * * user /path/to/php /full/path/to/script.php > /dev/null 2>&1


You will specify the user that you want the cron job to run under, the actual path to php, and the actual path to the php script.

If you want to receive emails remove the "> /dev/null 2>&1".
Mark BradyPrincipal Data EngineerCommented:
Cron tabs can take a bit of getting used to. It took me a while but I had many jobs set to run and all different times and days and they are great. Here is a simple explanation to help you out.

The first part of any cron job entry is 5 * in a row. From left to right here is what each one means

Minute (from 0 to 59)
Hour (from 0 to 23)
Day of month (1 to 31)
Month (1 to 12)
Day of Week (0 to 6 where 0 = Sunday)

If for example you had a php file on your web server named 'test.php' - and it was located in

public_html/tasks/cronjobs

and you wanted to run this php file on that server every 1 hour on the hour (6pm - 7pm - 8pm etc)
your cron entry would look like this:

0 */1 * * * cd /public_html/tasks/cronjobs && php test.php

If your script takes parameters for example you pass a message to it and the script will echo that message out, you put each parameter at the end of the line above each parameter separated by a space.

Let's say you wanted to pass in a username and an email address to your script and have that script do something with them. In the script they will be available as $argv[1] for username and $argv[2] for email address.

The cron entry would look like this:

0 */1 * * * cd /public_html/tasks/cronjobs && php test.php jim_jones jj@example.com


Looking at time timing settings for that entry this means that the script will be called on the zero minute - the */ means EVERY so */1 means every hour where as if you wanted to run it at 10am the second setting would just be 10 - The following 3 stars are placeholders and have no meaning unless they are set.

If you remove the */1 and made it just 1 then the script would run at 1am every day.

Starting to get the picture?

I don't use control panels but I ssh into the web server that the crons need to run on and add them directly.

To add directly once you have logged into the server (via a shell) you type:

crontab -e

Hit enter and the cron will open for editing.
Scroll down past any other entries and paste your cron job in there. Exit and save that file and it will be in effect immediately.

I hope this helps and good luck.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.