How To Run A Node.js Script With Cron?

Published August 18, 2024

Problem: Automating Node.js Script Execution

Running Node.js scripts on a schedule can be hard. Cron, a time-based job scheduler, offers a way to automate script execution at specific intervals or times.

Solution: Configuring Cron to Run Node.js Scripts

Using Full Paths in Cron Jobs

When setting up a cron job to run Node.js scripts, use the full path to the Node.js executable. This helps avoid issues with environment variables and shell settings that might differ in the cron environment. The correct syntax for a cron job entry should include the complete path to both the Node.js executable and the script file.

Tip: Find Node.js Path

To find the full path of your Node.js executable, you can use the command:

which node

This will return the path you should use in your cron job.

Example Cron Job Configuration

Here's an example of a cron job for Node.js scripts:

30 6 1 * * /usr/local/bin/node /home/steve/example/script.js

This cron job entry means:

  • 30 6 1 * *: Sets the schedule. The script will run at 6:30 AM on the first day of every month.
  • /usr/local/bin/node: The full path to the Node.js executable.
  • /home/steve/example/script.js: The full path to the Node.js script you want to run.

The cron syntax has five fields to specify when the job should run:

  1. Minute (0-59)
  2. Hour (0-23)
  3. Day of the month (1-31)
  4. Month (1-12)
  5. Day of the week (0-7, where both 0 and 7 represent Sunday)

You can change these fields to set different schedules for your Node.js script execution. For example, to run a script every day at midnight, use:

0 0 * * * /usr/local/bin/node /path/to/your/script.js