For tasks that need to happen at a certain date or time in the future, there's the `at` command. For example, I just received an email from myself reminding me that my GPG key is set to expire soon.
You can view your queue with `atq`, and remove them with `atrm`.
If you need to schedule tasks to happen more than once, see `crontab -e`.
@mikegerwitz And there's 'batch' for jobs which don't need to be run right now, but should be started when system load is low, and send mail with output on completion.
'batch' jobs will queue in submitted order and run when system load is below a defined value.
@mikegerwitz Also useful to note that 'at' should be read as "guaranteed not to run before specified time' rather than "guaranteed to run at specified time".
The scheduler tries to execute jobs after the timespec has passed, but issues (load limits, overloaded / laggy system) can contribute to substantial delays.
Mike Gerwitz's personal Mastodon instance