The at command is a powerful utility in Unix-like
operating systems that allows you to schedule commands to be
executed at a specific time in the future. Unlike cron,
which is designed for recurring tasks, at is ideal for
one-time jobs. This makes it perfect for tasks that need to run
once, such as system maintenance, backups, or sending out
notifications at a particular moment.
To schedule a one-time task using the at command, you
specify the desired execution time followed by the commands you want
to run. The commands are then entered one by one, and you signal the
end of the input by pressing Ctrl-d.
# To schedule a one time task:
at <time>
<command 0>...
Ctrl-d
The <time> argument for the
at command is quite flexible and can be specified in
several formats:
now: Executes immediately.-
midnight: Schedules for midnight (00:00) of the next day. -
noon: Schedules for noon (12:00) of the next day. -
teatime: Schedules for 4 PM (16:00) of the next day. -
HH:MM: Specifies the exact hour and minute (e.g.,14:30for 2:30 PM). -
now + N <minutes | hours | days | weeks>: Schedules relative to the current time (e.g.,now + 30 minutesornow + 2 days). -
MM/DD/YY: Specifies the date in month/day/year format (e.g.,12/25/23for December 25, 2023).
The at command suite includes utilities to manage your
scheduled tasks effectively.
To view a list of all jobs that are currently scheduled to run but
haven't executed yet, use the atq command:
# To list pending jobs:
atq
This command will output a list of job IDs, along with the date and time they are scheduled to run.
If you need to cancel a scheduled job, you can use the
atrm command followed by the job ID obtained from
atq:
# To remove a job (use id from atq):
atrm <id>
For example, if atq shows job ID 5, you would run
atrm 5 to remove it.