Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:services:application_services:high_performance_computing:running_jobs_slurm:scrontab [2021/04/26 14:11] – created mbodenen:services:application_services:high_performance_computing:running_jobs_slurm:scrontab [2021/04/26 14:14] (current) – [Usage] mboden
Line 1: Line 1:
 +====== Jobs at regular intervals ======
 +
 +If you have small tasks you want to run at regular intervals, Slurm has the [[https://slurm.schedmd.com/scrontab.html|scrontab]] utility available. It gives you a ''cron''-like interface for submitting and running batch jobs at regular intervals, e.g. monitoring tasks or housekeeping scripts.
 +
 +===== Usage =====
 +Like ''cron'', Slurm uses a configuration file to define these recurring jobs. Each users has it's own configuartion file. The files are not edited dierctly, but instead you can use ''scrontab -e'' to edit ((''scrontab'' uses the editor saved in the ''$EDITOR'' variable.)) your all your scrontab-jobs.
 +
 +Inside the scrontab file, you can use ''#SCRON'' to give instructions to the scheduler, similar to the ''#SBATCH'' lines in normal jobscript, though not all options are supported. After the ''#SCRON'' lines, you have one line to define **when** and **what** should be done, just like a normal cron job.
 +
 +You have two styles of defining when you job should run:
 +  - common time intervals, e.g. ''@hourly'', ''@daily'', ''@weekly''
 +  - [[https://wiki.archlinux.org/index.php/cron#Crontab_format|Five fields in the crontab format]]
 +The latter can get quite complex, but there are [[https://crontab.guru/|online tools]] out there to help you with it.
 +After defining when something should run, you can give a command or a script that is run at the appropriate time. The command or script has to be on the same line. The command to execute does not need to be a Slurm jobscript (i.e. should not contain ''#SBATCH'' lines).
 +
 +These ''#SCRON'' lines and the following line comprise a single scrontab entry. All ''#SCRON'' lines following will be counted towards the next command.
 +
 +You can list your currently defined ''scron'' jobs with ''scrontab -l''.
 +
 +Slurm cannot guarantee that the jobs will run at the requested times, but tries to schedule it es close as possible. Internally, jobs are submitted to Slurm and set with a specific BeginTime. Once a ''scron'' job ran, it will be requeued with a new BeginTime. These jobs will also show up in ''squeue''.
 +
 +===== Example =====
 +<file scrontab>
 +#SCRON -p fat
 +#SCRON -t 01:00:00
 +@daily /usr/users/mboden/update-database.sh
 +
 +#SCRON -p medium
 +#SCRON -C scratch
 +#SCRON -t 05:00
 +#check scratch every 5 minutes
 +*/15 * * * * /usr/users/mboden/check-scratch.sh
 +</file>
 +
 +