If you want to run scripts on a scheduled basis, keep in mind the following:
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.
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/local/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/local/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/local/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!
Top comments (2)
Nice Article wisdomosinachi
Thanks