at and batch


While cron and anacron are used to schedule recurring tasks, the at command is used to schedule a one-time task at a specific time. The batch command is used to schedule a one-time task to be executed when the system’s load average drops below 0.8.

To use at or batch you must have the at RPM package installed, and the atd service must be running. To determine if the package is installed, use the rpm -q at command. To determine if the service is running, use the command /sbin/service atd status.

Configuring at Jobs

To schedule a one-time job at a specific time, type at time, where time is the time to execute the command. The argument time can be one of the following:

  • HH:MM format — For example, 04:00 specifies 4:00 a.m. If the time is already past, it is executed at the specified time the next day.

  • midnight — Specifies 12:00 a.m.

  • noon — Specifies 12:00 p.m.

  • teatime — Specifies 4:00 p.m.

  • month-name day year format — For example, January 15 2005 specifies the 15th day of January in the year 2005. The year is optional.

  • MMDDYY, MM/DD/YY, or MM.DD.YY formats — For example, 011505 for the 15th day of January in the year 2005.

  • now + timetime is in minutes, hours, days, or weeks. For example, now + 5 days specifies that the command should be executed at the same time in five days. The time must be specified first, followed by the optional date.

For more information about the time format, read the /usr/share/doc/atversion/timespec text file.

After typing the at command with the time argument, you will see the at> prompt. Type the command to be executed, press Enter, and press Ctrl-D. More than one command can be specified by typing each command followed by the Enter key. After typing all the commands, press Enter to go to a blank line and press Ctrl-D.

Alternatively, a shell script can be entered at the prompt, pressing Enter after each line in the script and pressing Ctrl-D on a blank line to exit. If a script is entered, the shell used is the shell set in the user’s SHELL environment, the user’s login shell, or /bin/sh (whichever is found first).

If the set of commands or script tries to display information to the standard output, the output is emailed to the user. Use the command atq to view pending jobs. Refer to the “Viewing Pending Jobs” section for more information. Use of the at command can be restricted. Refer to the section “Controlling Access to at and batch” for details.

Configuring batch Jobs

To execute a one-time task when the load average is below 0.8, use the batch command. After typing the batch command, you will see the at> prompt. Type the command to be executed, press Enter, and press Ctrl-D. More than one command can be specified by typing each command followed by the Enter key. After typing all the commands, press Enter to go to a blank line and press Ctrl-D.

Alternatively, a shell script can be entered at the prompt, pressing Enter after each line in the script, and pressing Ctrl-D on a blank line to exit. If a script is entered, the shell used is the shell set in the user’s SHELL environment, the user’s login shell, or /bin/sh (whichever is found first). As soon as the load average is below 0.8, the set of commands or script is executed.

If the set of commands or script tries to display information to standard out, the output is emailed to the user. Use the command atq to view pending jobs. Refer to the “Viewing Pending Jobs” section below for more information. Use of the batch command can be restricted. Refer to the section “Controlling Access to at and batch” for details.

Viewing Pending Jobs

To view pending at and batch jobs, use the atq command. It displays a list of pending jobs, with each job on a line. Each line is in the format job number, date, hour, job class, and username. Users can view only their own jobs. If the root user executes the atq command, all jobs for all users are displayed.

Additional Command-Line Options

Additional command line options for at and batch are shown in Table 10-1.

Table 10-1: at and batch command-line options

Option

Description

-f

Read the commands or shell script from a file instead of specifying them at the prompt.

-m

Send email to the user when the job has been completed.

-v

Display the time that the job will be executed.

Controlling Access to at and batch

The /etc/at.allow and /etc/at.deny files can be used to restrict access to the at and batch commands. The format of both access control files is one username on each line. Whitespace is not permitted in either file. The at daemon (atd) does not have to be restarted if the access control files are modified. The access control files are read each time a user tries to execute the at or batch commands.

The root user can always execute at and batch commands, regardless of the access control files. If the file at.allow exists, only users listed in it are allowed to use at or batch, and the at.deny file is ignored. If at.allow does not exist, all users listed in at.deny are not allowed to use at or batch.

Starting and Stopping the Service

To start the at service, use the command /sbin/service atd start. To stop the service, use the command /sbin/service atd stop. It is recommended that you start the service at boot time.




Official Red Hat Linux Administrator's Guide
Official Red Hat Linux Administrators Guide
ISBN: 0764516957
EAN: 2147483647
Year: 2002
Pages: 278
Authors: Red Hat Inc

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net