Files
2026-09-28 17:14:01 +02:00

1.6 KiB

Systemd Timers for Regular Tasks

Create New Timer

To have custom executables run regularly on given time/interval, you may use the base::timers Hiera key:

base::timers:
    'timer_test':
        description: 'test timers'
        command: '/usr/bin/logger foo'
        on_calendar: '*:*:10'
        timer_options:
            persistence: false
        service_options:
            Environment: 'SOME_ENV=some_value'
            User: 'svcusr-logger'
        service_unit_options:
            OnSuccess: 'dnf-automatic'
            OnFailure: 'send-failure-email'

This then creates both the required timer and service unit files for systemd.

For each timer following keys are mandatory

  • description for a short explanation what it is about
  • command for the command to run
  • on_calendar defining when it should run using the systemd calendar event format, (alternatively see also chapter "CALENDAR EVENTS" of man systemd.date)

Optional is

  • timer_options for additional configuration in the Timer section of the timer unit. In the example it is persistence which signals if the timer should run immediately after boot when the node was switched of on the last scheduled run time (default is false).
  • service_options for additional configuration in the Service section of the service unit.
  • service_unit_options for additional options in the Unit section of the service unit.

Enable/Disable Existing Timer

base::timers:
    'certbot':
        enable: true