Cron is a time-based job scheduler in Unix-like operating systems, they can execute a group of tasks automatically such as backing database, sending emails at certain times in the future.
Prepare a cron job to run PHP script
A cron job is is a scheduled job, listed in a crontab file. It will be run by Cron when it’s due. Here is the format to add a task to crontab:
* * * * * /path/to/php /path/to/php_script.php //examples * * * * * /usr/bin/php -f /usr/local/bin/run.php &> /dev/null * * * * * /usr/local/bin/php /home/john/myscript.php
The first 5 asterisks indicates the time or period a cron job will be executed.
- min (0 – 59)
- hour (0 – 23)
- day of month (1 – 31)
- month (1 – 12)
- day of week (0 – 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
These time parameter use server’s timezone.
#hourly 0 * * * * #run hourly at fifteen past the hour 15 * * * * #run hourly at 0,15,30,45 minutes past the hour 0,15,30,45 * * * *
#daily at midnight 0 0 * * * #daily at 6pm 0 18 * * * #daily at 3:30, 6:30, 9:30 30 3,6,9 * * *
#every Thursday at 6:15am 15 6 * * 3 #every Sunday and Monday at midnight 0 0 * * 0,1
#monthly 0 0 1 * * #every month on the 5th at midnight 0 0 5 * *
Run every X minutes / every X hours
#every 5 minutes */5 * * * * #every 2 hours on the hour 0 */2 * * * #every 6 hours at half past the hour 30 */6 * * * #at 2:20am, 6:20am, 10:20pm and 2:20pm 20 2,6,10,14 * * *
PHP Cron Job Libraries
- jobby – This is a PHP package to manage all of your cron jobs without modifying crontab. It can handle locking, logging, error emails, and more.
- cron – Cron is a cron job scheduler for Laravel, it can can be used for easily performing cron jobs from the internet or from the local machine.
- php-cron-scheduler – This is a framework agnostic cron jobs scheduler that can be easily integrated with your project or run as a standalone command scheduler.