Systemd/timers
Timers are systemd unit files whose name ends in .timer that control .service files or events. Timers can be used as an alternative to cron. Timers have built-in support for calendar time events, monotonic time events, and can be run asynchronously.
Example usage
Following timer runs a systemd unit every 5 minutes which invokes a bash script
systemd.timers."faecherstadt-consulting-backup" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "5m";
OnUnitActiveSec = "5m";
Unit = "faecherstadt-consulting-backup.service";
};
};
systemd.services."faecherstadt-consulting-backup" = {
script = ''
set -eu
${pkgs.coreutils}/bin/echo "Hello World"
'';
serviceConfig = {
Type = "oneshot";
User= "nobody";
};
};