How to run scripts via cron jobs

If you want to run scripts on a scheduled basis, keep in mind the following:

1. According to our Acceptable Use Policy, running cron jobs with intervals of less than 5 minutes or setting up more than 5 simultaneous cron jobs is not allowed on all shared servers.

2. If you do not add >/dev/null 2>&1 at the end of the command, the server will send an email notification each time a cron job runs. While it may be useful for testing purposes and monitoring, if not attended, such emails will be accumulating in the email account specified in the Cron email field, and if it is one of your cPanel email accounts, they might cause issues with inodes usage.

NOTE: If your script does not generate any output, it is possible that notification emails are not sent either, however, the cron job is working.

In order to set up a cron job, go to cPanel > section Advanced Cron Jobs menu:



 
PLEASE NOTE: Cron jobs are run according to the server time.
 

General cron job format is as follows:

[path to environment] [Path to script] [Script parameters]


For example, if you want to run a PHP script located in the public_html directory, the correct cron command will be:

/usr/bin/php /home/cPaneluser/public_html/yourscript.php

/usr/bin/php -q /home/cPaneluser/public_html/yourscript.php 
(for business servers)


or if you want to use a relative path (different commands are divided by “;”):

cd /home/YourcPuser/public_html/; /usr/bin/php yourscript.php

cd /home/YourcPuser/public_html/; /usr/bin/php -q yourscript.php 
(for business servers)

For Python and Perl scripts, there is no need to use a full path to the environment. The environment interpreter directive will be enough on shared servers.

python /home/YourcPuser/public_html/yourscript.py

perl /home/YourcPuser/public_html/yourscript.pl



Alternatively, you can just use curl request as the cron job command for the same purpose:

curl “http://yourdomain.com/script.php?argument1=arg1&argument2=arg2”
curl “http://yourdomain.com/script.py”
curl “http://yourdomain.com/script.pl”


However, unlike the first method, curl-based cron jobs will work only if URLs specified in curl requests are resolving, e.g., DNS records for the domain are correct and running.
You can find more information about the curl tool usage here.

You can also check if a cron command is executed correctly by running it in the command line via SSH.

We will use this simple summing script with external parameters and run it using a web browser, Cron and SSH:




First, let's just run it in the browser pulling arguments after the script name and “?” directive:

http://nctest.info/script.php?arg1=2&arg2=3



Now, in order to get the same result via cron we will use this command and add parameters after the script path:

/usr/bin/php /home/nctest/public_html/script.php 2 3


The email notification contains the same output:




In CLI, you can run both cron commands and CURL requests, just log into your cPanel account via SSH and input them like shown below:




This is it!

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

SQL

SQL (can be pronounced either as see-kwell or as separate letters) is an abbreviation for...

Web server

Web server  is a software application that is responsible for returning webpages per clients’...

TCP/IP

TCP/IP - Transmission Control Protocol/Internet Protocol (currently in revision 4, known as IPv4,...

IP address

IP address  - Internet Protocol Address – also known as an “IP number” or simply an “IP” is a...

Why is it beneficial to have a dedicated IP address?

When it comes to hosting a website on a shared server, there is always quite a common...