Can I run cron jobs on Mistral?

For system administration reasons users are not allowed to shedule and execute periodic jobs on Mistral using the cron utility. Our recommendation is to use the functionality provided by the workload manager SLURM for this purpose. With the option –begin of the sbatch command you can postpone the execution of your jobs until the specified time. For example, to run a job every day after 12 pm you can use the following job script re-submitting itself at the beginning of the execution:

#!/bin/bash
#SBATCH --begin 12:00
#SBATCH --account=<prj_account>
#SBATCH --partition=shared
#SBATCH --time=01:00:00
#SBATCH --output=my_script.o%j

set -e

# Re-submit job script for the next execution
sbatch my_script.sh

# Do planned work

A variety of different date and time specifications is possible with the –begin option, for example: now+1hour, midnight, noon, teatime, YYYY-MM-DD[Thh:mm:ss], 7AM, 6PM etc. For more details see manual pages of the sbatch command:

man sbatch

With SLURM the scheduled tasks are kept highly available while cron is not tolerant of single system failures (i.e. if a login node chosen for execution of cron jobs were to fail, the jobs would not be executed). The other advantage of using SLURM is that job output is logged to a unique file (see option –output) by default.