cPanel, Using Cron

Use cron to schedule tasks that need to happen at a certain time or on a repeating basis.

What is Cron

From https://en.wikipedia.org/wiki/Cron:

The software utility cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. cron is most suitable for scheduling repetitive tasks. 

Cron in cPanel

cPanel provides a graphical interface for setting up your crontab. To access it, find "Cron Jobs" in the advanced section of your dashboard. Creating a new cron job is as simple as filling in the form fields. You can select from several pre-defined common timings or manually specify each of minute, hour, day, month, and weekday.

When choosing a schedule for your cron job, keep the following factors in mind

  1. User cron jobs are not permitted to run more than once every 15 minutes
  2. Jobs that run once per day should be scheduled during outside of business hours if possible
  3. Be aware of how long your job takes to run and ensure that it is scheduled in such a way that it will always complete before running again

 

Cron fields

Some of the tools available in cPanel may schedule cron jobs automatically. For example, Softaculous backup tasks and Drupal update checks may appear in your crontab even if you have never used this interface before. Below is an example of the web-based view of your scheduled cron jobs.

Cron

Special considerations when running commands via Cron

When you run commands from a login shell, you have a set of environment variables that are referenced. The environment that cron has to work with is much more limited. Therefore, if your script depends on information provided by your environment it may not run correctly as a cron job. To avoid this issue, ensure that any variables you need are explicitly set from within you script and use the full path to any commands or supporting programs you may call. See below for an example of the differences between your login environment and the environment available to cron. The most likely cause of issues is the more limited "PATH" variable but any environment variables you have set for yourself will also be missing from cron's environment. You can review your own user environment by logging in via SSH and typing "env." 

Cron's Environment

XDG_SESSION_ID=<id>

SHELL=/bin/bash

MAILTO=<email specified on Cron Jobs interface>

USER=<accountname>

PATH=/usr/bin:/bin

PWD=/home/<accountname>

LANG=en_US.UTF-8

SHLVL=1

HOME=/home/<accountname>

LOGNAME=<accountname>

XDG_RUNTIME_DIR=/run/user/<id>

_=/usr/bin/env

Example User Environment

XDG_SESSION_ID=<id>
HOSTNAME=web.illinois.edu
TERM=xterm-256color
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=<client IP info>
SSH_TTY=/dev/pts/1
USER=<accountname>
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
PASSENGER_INSTANCE_REGISTRY_DIR=/var/passenger
MAIL=/var/spool/mail/<accountname>
PATH=/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/cpanel/composer/bin:/home/<accountname>/.local/bin:/home/<accountname>/bin
PWD=/home/<accountname>
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/<accountname>
LOGNAME=<accountname>
SSH_CONNECTION=<info>
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/<id>
HISTTIMEFORMAT=%F %T 
_=/usr/bin/env



Keywords:
cPanel, web hosting, cron, schedule 
Doc ID:
85001
Owned by:
Web H. in University of Illinois Technology Services
Created:
2018-08-17
Updated:
2024-01-23
Sites:
University of Illinois Technology Services