What is the batch command in Unix

ARCHIVED: In Unix, what are the at and batch commands, and how do I use them to submit non-interactive job requests?

This content has been archived, and is no longer maintained by Indiana University. Information here may no longer be accurate, and links may no longer be available or reliable.

Note: The and commands are not available on the UITS research systems at Indiana University.

In Unix, the and 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 crontab, and are generally used for jobs that are meant to run only once.


Syntax

To submit a job with the command, first enter:

at runtime

Replace with the date and time you want to execute the job. For more, see Setting the job execution time below. Once you have pressed or , you may see a or 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 (or whatever your end-of-transmission character is). The system should report that the job has been submitted.

The syntax for the command is identical, except you do not set an execution time.

Setting the job execution time

With , 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 or to indicate the specific time on a 12-hour clock (e.g., 1:34pm or 0134pm). You may also use the words , , and to 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 , , 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 . 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 would 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 command, use: at 1334 +3 months

    Options

    The following options are available:

    • : Read the commands to be executed from the file instead of from standard input.
    • : List the jobs you have queued. This option works only with , but jobs submitted with also will be listed with this command. On some systems, this option has been replaced by the command.
    • : Send an email notification when the job has finished.
    • : Cancel the job whose ID is . This option works only with , but jobs submitted with can also be removed. On some systems, this option has been replaced with the command.

    Examples

    Command Explanation
    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 directory will be created.

    batch -f /home/hsolo/script1

    Rather than entering the commands into standard input, the user submits a command for a job that will execute the script .

    at -m 0530 November 9, 2009 /users/chewie/hb28.script Ctrl-d

    At 5:30am on November 9, 2009, the script will run. A mail message indicating the script has executed will be sent to the user who submitted the job.

    at -r skywalker.887664428.b

    Delete the job .

    Back to top

    More

    For more, consult the following man pages:

    at cron crontab