at
Roughly every week I learn something that it seems like everyone who's been
using Linux for any decent period of time seems to already know, so I'm gonna
start writing them down as I discover them. In today's episode, I learned about
at, which really tickles the part of me that likes things that just do what
they say they do.
echo notify-send "get coffee" | at 4pm
at is kind of like cron except designed for more isolated tasks. It relies
on a running daemon called atd, so if you install at through your package
manager make sure to do a systemctl enable atd --now or equivalent. You can
then start chucking it jobs.
This works great remotely - if you want to have a server restart after
everyone's gone home from work, you could do a ssh <machine> 'echo reboot | at 10pm' assuming you have at installed everywhere. I found out about this
from its use at GitLab to simultaneously restart a service
on a fleet of machines - you can read about that
here.
According to the manpage you can do some even
cleverer things - you can give it times like at 4pm + 3 days, words like at next friday, or use the batch command to have things run once the system is
below a certain load level, great for things like make -j that would otherwise
bring a system to a grinding halt.
You can also customise /etc/at.allow and /etc/at.deny to allow/deny certain
users from using at.
So, that's at. I didn't know about it until I read that GitLab blog, and now
I'm gonna use it because it's useful. I'll echo see you | at next time.