.TH scrontab "1" "Slurm Commands" "February 2024" "Slurm Commands"

.SH "NAME"
scrontab \- manage Slurm crontab files

.SH "SYNOPSIS"
scrontab [\-u user] file
.br
scrontab [\-u user] [ \-e | \-l | \-r ]

.SH "DESCRIPTION"
.LP
\fBscrontab\fR is used to set, edit, and remove a user's Slurm\-managed crontab.
This file can define a number of recurring batch jobs to run on a scheduled
interval.
.LP
Lines must be either comments starting with '#', whitespace, valid crontab
entries or custom variable settings.
.LP
Lines starting with \fB#SCRON\fR allow options to be defined for the single
following crontab entry. Options are always reset in between each crontab
entry. Options include most of those available to the \fBsbatch\fR command;
details are available in the \fBsbatch\fR(1) man page.
.LP
Note that jobs are not guaranteed to execute at the preferred time. Jobs will
run no more frequently than requested, but are managed by setting the
BeginTime field to the next valid iteration, and are then subject to queuing
delays. The exact behavior will depend on the local site configuration.
Because of this method of implementation, the next job in the series won't be
submitted until after the previous job has completed. For example, if you
have a monitoring job that is scheduled to run every minute on a busy
system, if the job scheduled to start at 08:20:00 isn't able to start until
08:20:30 and it runs for 35 seconds then the job at 08:21:00 will be skipped
and the next job will be scheduled for 08:22:00.
.LP
\fBscrontab\fR uses the same syntax for date and time specifiers as \fBcron\fR.
Each line has five fields that have the following meanings:
.RS
field           allowed values
.br
-\-\-\-\-           \-\-\-\-\-\-\-\-\-\-\-\-\-\-
.br
minute          0\-59
.br
hour            0\-23
.br
day of month    1\-31
.br
month           1\-12 (or name)
.br
day of week     0\-7 (0 and 7 are Sunday, or use name)
.RE

.LP
A field can contain an asterisk (*) which means that it's valid for each of
the allowed values for the given time period. Ranges are allowed where a range
is two numbers with a hyphen between them. The second number must be greater
than the first. Lists are allowed, with commas separating the numbers or
ranges being separated. Step values can be specified by entering a slash
(/), followed by the step value, causing the job to run at the specified
interval appropriate for that field.

.LP
Custom variables can be defined as within a regular shell script. The `$'
character introduces variable expansion. Simple parameter expansion is the only
currently accepted expansion variant (i.e. ${parameter} or ${parameter:\-word}
are not supported). The variable expansion will only occur within \fBscrontab\fR
job commands. It is not possible to expand variables in other type of lines
(other variable definitions, comments or crontab entries). The expansion will
happen before submitting the job, but the variable definitions will remain in
the \fBscrontab\fR script. Unlike crontab, the user environment variables are
ignored.

.SH "OPTIONS"
The first form of this command is used to install a new crontab from some named
file or standard input if the pseudo\-filename ``\-'' is given.

.TP
\fB\-e\fR
Edit the crontab. If a crontab does not exist already, a default example
(without any defined entries) will be provided in the editor.
.IP

.TP
\fB\-l\fR
List the crontab. (Prints directly to stdout.)
.IP

.TP
\fB\-r\fR
Remove the crontab. Any currently running crontab\-defined jobs will continue
to run but will no longer recur. All other crontab\-defined jobs will be
cancelled.
.IP

.TP
\fB\-u\fR <\fIuser\fR>
Edit or view a different user's crontab. Listing is permitted for Operators and
Admins. Editing/removal is only permitted for root and the \fISlurmUser\fR
account.
.IP

.SH "SCRONTAB OPTIONS"
\fBscrontab\fR allows you to use shortcuts to specify some common time
intervals for the specified script to run. These include the following:

.TP
\fB@yearly\fR | \fB@annually\fR
Job will become eligible at \fI00:00 Jan 01\fR each year.
.IP

.TP
\fB@monthly\fR
Job will become eligible at \fI00:00\fR on the first day of each month.
.IP

.TP
\fB@weekly\fR
Job will become eligible at \fI00:00 Sunday\fR of each week.
.IP

.TP
\fB@daily\fR | \fB@midnight\fR
Job will become eligible at \fI00:00\fR each day.
.IP

.TP
\fB@hourly\fR
Job will become eligible at the first minute of each hour.
.IP

.TP
\fB@elevenses\fR
Job will become eligible at \fI11:00\fR each day.
(This is a non-standard extension.)
.IP

.TP
\fB@fika\fR
Job will become eligible at \fI15:00\fR each day.
(This is a non-standard extension.)
.IP

.TP
\fB@teatime\fR
Job will become eligible at \fI16:00\fR each day.
(This is a non-standard extension.)
.IP

.SH "ENVIRONMENT VARIABLES"

.TP 20
\fBVISUAL\fR
Used as the interactive editor if set.
.IP

.TP
\fBEDITOR\fR
Used as the interactive editor if set and \fBVISUAL\fR is not defined.
.IP

.TP
\fBSLURM_CONF\fR
The location of the Slurm configuration file.
.IP

.TP
\fBSLURM_DEBUG_FLAGS\fR
Specify debug flags for scrontab to use. See DebugFlags in the
\fBslurm.conf\fR(5) man page for a full list of flags. The environment
variable takes precedence over the setting in the slurm.conf.
.IP

.SH "NOTES"
.LP
\fBscrontab\fR is only available if the \fBScronParameters=enable\fR option has
been enabled in the \fBslurm.conf\fR.
.LP
\fBscrontab\fR will create a temporary file in the directory set by \fBTMPDIR\fR
environment variable. If the variable is not set /tmp is used.
.LP
Jobs created with \fBscrontab\fR are assigned a single job id. When cancelled
all future runs of the job will also be cancelled. The job definition will be
commented out in the users \fBscrontab\fR file.
.LP
Using "\fBscontrol requeue\fR <\fIjob_id\fR>" will skip the next run of the
cron job and reschedule it for the next available time based on the cron
expression.

.SH "EXAMPLES"
To create a job that would run at the beginning of each hour, using the 'high'
partition, 'sub1' account and have a walltime of 1 minute, you would add the
following to \fBscrontab\fR:

.RS
.nf
DIR=/home/user1
#SCRON \-p high
#SCRON \-A sub1
#SCRON \-t 1:00
@hourly $DIR/date.printer.job
.fi
.RE

.LP
To have a job run every Wednesday, every other hour during the work day, each
of the first five minutes of the hour and again at the thirty minute mark,
you would add the following to \fBscrontab\fR.

.RS
.nf
1\-5,30 8\-17/2 * * wed $DIR/example.job
.fi
.RE

.SH "LIMITATIONS"
The Slurm controller's timezone is what will be used to evaluate each crontab's
repetition intervals. User\-specific timezones are not supported.

.SH "COPYING"
Copyright (C) 2020\-2022 SchedMD LLC.
.LP
This file is part of Slurm, a resource management program.
For details, see <https://slurm.schedmd.com/>.
.LP
Slurm is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
.LP
Slurm is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.

.SH "SEE ALSO"
.LP
\fBsbatch\fR(1), \fBsqueue\fR(1), \fBslurm.conf\fR(5)
