======Systemd Timers======
This guide will detail how to properly configure and enable systemd timers.
Many thanks to this [[https://jason.the-graham.com/2013/03/06/how-to-use-systemd-timers/|source]]
As I went about trying to set them up, I had the hardest time, since it seems the required information is spread around in various places. I wanted to record what I did so firstly, I can remember, but also so that others don’t have to go searching as far and wide as I did.
There are additional options associated with the each step I mention below, but this is the bare minimum to get started. Look at the man pages for ''systemd.service'', ''systemd.timer'', and ''systemd.target'' for all that you can do with them.
=====Running a Single Script=====
Let’s say you have a script '/usr/local/bin/myscript' that you want to run every hour.
====Service File====
First, create a service file, and put it wherever it goes on your Linux distribution (on Arch, it is either ''/etc/systemd/system/'' or ''/usr/lib/systemd/system'').
[Unit]
Description=MyScript
[Service]
ExecStart=/usr/local/bin/myscript
====Timer File====
Next, create a timer file, and put it also in the same directory as the service file above.
[Unit]
Description=Runs myscript every hour
[Timer]
# Time to wait after booting before we run first time
OnBootSec=10min
# Time between running each consecutive time
OnUnitActiveSec=1h
Unit=myscript.service
[Install]
WantedBy=multi-user.target
=====Enable / Start=====
Rather than starting / enabling the service file, you use the timer.
$ sudo systemctl start myscript.timer
$ sudo systemctl enable myscript.timer