Could someone provide some example usages for the
at command? I'm finding the
man super confusing.
$ man at
For example, if we wanted to run a command 10 minutes from now, can this be done using
at? (and without using
The time spec for "10 minutes from now" is
now +10 minutes. For example,
echo 'open ~' | at now +10 minutes
at system is disabled by default in macOS, as mentioned in the
at man page:
IMPLEMENTATION NOTES Note that at is implemented through the launchd(8) daemon periodically invoking atrun(8), which is disabled by default. See atrun(8) for infor- mation about enabling atrun.
atrun man page says that you need to run
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
I Use the
atcommand when I need to do some heavy processing on data, which I want to have executed during the night, when I am not behind my computer. Of course I could start the process just after I leave, but this is something I tend to forget.
The result of the command is not different from regularly execution of the script or command.
What it does
at man page
NAME at, batch, atq, atrm - queue, examine or delete jobs for later execution DESCRIPTION at and batch read commands from standard input or a specified file which are to be executed at a later time, using /bin/sh.
The usage of the tools:
Usage: at [-V] [-q x] [-f file] [-mldbv] timespec ... at [-V] [-q x] [-f file] [-mldbv] -t time at -c job ... atq [-V] [-q x] atrm [-V] job ... batch
at includes 4 commands (
batch). You use
batch to schedule the jobs,
atq to see what's scheduled, and
atrm to remove a job prior to it running.
$ at -f <cmd> timspec
The time to run the at job can be specified in different ways.
excerpt form at man page
At allows fairly complex time specifications, extending the POSIX.2 standard. It accepts times of the form HH:MM to run a job at a specific time of day. (If that time is already past, the next day is assumed.) You may also specify mid‐ night, noon, or teatime (4pm) and you can have a time-of-day suffixed with AM or PM for running in the morning or the evening. You can also say what day the job will be run, by giving a date in the form month-name day with an optional year, or giving a date of the form MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD. The specification of a date must follow the specification of the time of day. You can also give times like now + count time-units, where the time- units can be minutes, hours, days, or weeks and you can tell at to run the job today by suffixing the time with today and to run the job tomorrow by suffixing the time with tomorrow.
Say you have this shell script.
$ cat mycrontest.sh #!/bin/bash echo "It is now $(date +%T) on $(date +%A)"
$ ./mycrontest.sh It is now 18:37:42 on Friday
Sample at job submissions:
$ at -f mycrontest.sh 10pm tomorrow job 14 at Sun Jul 8 22:00:00 2007 $ at -f mycrontest.sh 2:00 tuesday job 15 at Tue Jul 10 02:00:00 2007 $ at -f mycrontest.sh 2:00 july 11 job 16 at Wed Jul 11 02:00:00 2007 $ at -f mycrontest.sh 2:00 next week job 17 at Sat Jul 14 02:00:00 2007
Credits to @slm