Laravel Schedule Jobs

Laravel Cron Job Script

This script is designed to run a Laravel artisan command to update the status of family distributions at regular intervals. The script logs the execution time and then runs the specified artisan command.

Script Overview

The script performs the following actions:

  1. Logs the current date and time when the cron job is executed.
  2. Runs a Laravel artisan command to update the status of family distributions.

Script: laravel.sh

#!/bin/bash

echo "Cron job executed at: $(date)" >> /tmp/laravel_cron.log

sudo /usr/bin/php8.3 /home/madhan/madhan/Projects/jbf/jack-brewer-cms/artisan familydistribution:update-status

Setting Up the Cron Job

To set up this script to run as a cron job:

  1. Make the Script Executable
    Ensure the script has execute permissions:
   chmod +x /usr/local/sbin/laravel.sh
  1. Edit the Crontab
    Open the crontab file and add the following line to schedule the cron job.
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

* * * * * root /usr/local/sbin/laravel.sh >> /tmp/laravel_cron_test.log 2>&1