In Unix, what are the at and batch commands, and how do I use them to submit non-interactive job requests?
commands are not available on the UITS research systems at
Indiana University. Big Red uses LoadLeveler for job
submission; Quarry and Mason use
In Unix, the
commands let you schedule non-interactive tasks that execute,
respectively, at a specified time or as soon as system resources
permit. Once a job is completed, the system sends you mail messages
containing the job's output and errors, if any. Unlike
generally used for jobs that are meant to run only once.
On this page:
To submit a job with the
at command, first enter:
runtime with the date and time you want to
execute the job. For more, see Setting the job
execution time below. Once you have pressed
Return, you may see a
at> prompt, or there may be no prompt at
all. In any case, enter the command(s) and/or executable(s) you would
like to execute. When you're finished, press
whatever your end-of-transmission character is). The system should
report that the job has been submitted.
The syntax for the
batch command is identical, except
you do not set an execution time.
Setting the job execution time
at, you must specify a time the job should
execute. The format you use to indicate the time is very flexible and
may consist of the following:
Time: Enter a one- or two-digit number (0-23) to
indicate the start of an hour on a 24-hour clock (e.g., 13 is 13:00 or
1:00pm). To schedule the job to occur at a time other than the start
of the hour, add minutes (00-59), optionally separated from the hour
by a colon (e.g., 1334 or 13:34). You may follow the number with an
pmto indicate the specific time on a 12-hour clock (e.g., 1:34pm or 0134pm). You may also use the words
midnightto indicate the current time. If the time you indicate is later than the current time and you haven't specified a date, the job will execute the same day; otherwise, it will execute the next day.
Date: You can schedule a job to execute on a
specific date. You can use keywords, such as
tomorrow, or one of the days of the week. The job will execute at the soonest possible date that meets the requirements. You also may enter a fully qualified date, such as
November 9, 2010. The year is optional, and you can use an abbreviation for the month. As long as the date is unambiguous, your job request will probably succeed.
Increment: You also can specify the execution
time by indicating how far in the future it should be, relative to the
current time. To do this, enter a plus sign
+), followed by a number and then one of the following keywords:
For example, if the current time is 12:00pm, the increment of
+2 weekswould set the execution time at noon on a day two weeks hence.
These elements can be combined, for example:
- To schedule a job for the following Tuesday at a time two hours later than the current time, use: at tuesday +2 hours
To set the execution time for 9:00 in the morning on the second day of next February, use: at 9am February 2
- To set the execution time for 1:34pm on a date exactly three
months from when you issue the
atcommand, use: at 1334 +3 months
The following options are available:
-f script: Read the commands to be executed from the file
scriptinstead of from standard input.
-l: List the jobs you have queued. This option works only with
at, but jobs submitted with
batchalso will be listed with this command. On some systems, this option has been replaced by the
-m: Send an email notification when the job has finished.
-r <job-number>: Cancel the job whose ID is
job-number. This option works only with
at, but jobs submitted with
batchcan also be removed. On some systems, this option has been replaced with the
|at noon tar -cf /users/dvader dvader.tar Ctrl-d||The job will run at noon the same day if submitted in the morning,
or noon the next day if submitted in the afternoon. When the task is
performed, a tarball of the
|batch -f /home/hsolo/script1||Rather than entering the commands into standard input, the user
|at -m 0530 November 9, 2009 /users/chewie/hb28.script Ctrl-d||At 5:30am on November 9, 2009, the script
|at -r skywalker.887664428.b||Delete the job
For more, consult the following man pages:at cron crontab
At Indiana University, for personal or departmental Linux or Unix systems support, see At IU, how do I get support for Linux or Unix?
Last modified on October 25, 2012.