at Command at
Execute commands at given time
at [ -v ] [ -c command ] time [ [ day ] week ] [ file ]
at [ -v ] [ -c command ] time month day [ file ]
at executes commands at a given time in the future.
If the -c option is used, at executes the following command. If
file is named, at reads the commands from it. If neither is
given, at reads the standard input for commands.
If time is a one-digit or two-digit number, at interprets it as
specifying an hour. If time is a three-digit or four-digit num-
ber, at interprets it as specifying an hour and minutes. If time
is followed by a, p, n, or m, at assumes AM, PM, noon, or mid-
night, respectively; otherwise, it assumes that time indicates a
24-hour clock.
For example, the command
at -c "time | msg henry" 1450
set the time command to be executed at 2:50 PM, and pipe time's
output to the msg command, which will pass it to the terminal of
user henry. Note that argument to the -c option had to be
enclosed in quotation marks because it contains spaces and
special characters; if this were not done, at would not be able
to tell when the argument ended, and so would generate an error
message. Also note that if you wish pass information to a user's
terminal with the at command, you must tell at to whom to send
the information. The command
at 250p commandfile
will set the file commandfile to be read and executed at 2:50 PM.
Note that it is not necessary to use the file's full path name.
Also, if the suffix p were not appended to the time, the file
would be set to be read at 2:50 AM.
The time set in at's command line is not the exact time that the
command is executed. Rather, the daemon cron wakes up the file
/usr/lib/atrun periodically to see if any commands have been
scheduled commands to be executed at or before that time. The
frequency with which cron executes atrun determines the
``granularity'' of at execution times; it may be changed by
editing the file /usr/lib/crontab. For example, the entry
COHERENT Lexicon Page 1
at Command at
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/lib/atrun
sets /usr/lib/atrun to be executed every five minutes. Thus, the
at command that is set, for example, to 2:53 PM will actually be
executed at 2:55 PM. atrun executes specified commands when it
discovers that the given time is past; therefore, at commands are
executed even if the system is down at the specified time or if
the system's time is changed.
The at command has two forms, as shown above. In the first form,
the option day names a day of the week (lower case, spelled out).
If week is specified, at interprets the given time and day as
meaning that time and day the following week. For example, the
command
at -c "time | msg henry" 1450 friday week
executes time and sends its output to henry's terminal one week
from Friday at 2:50 PM.
In the second form given above, month specifies a month name
(lower case, spelled out) and the number day specifies a day of
the month. For example, the command
at 1450 july 4 commandfile
set the file commandfile to be read at 2:50 PM on July 4.
If the -v flag is given, at prints the time when the commands
will be executed, giving you enough information to plan for the
execution of the command. For example, if it is now August 13,
1990, at 2:30 PM, and you type the command
at -v -c "/usr/games/fortune | msg henry" 1435
at will reply:
Tue Aug 13 14:35:00
indicating that the command will be executed five minutes from
now. However, if you type
COHERENT Lexicon Page 2
at Command at
at -v -c "/usr/games/fortune | msg henry" 1435 august 10
at will reply
Sun Aug 10 14:35:00 1991
which indicates that on Sunday, August 10 of next year, at 2:35
PM, the COHERENT system will print a fortune onto your terminal.
Should you create such a long-distance at file by accident, you
can correct the error by simply deleting the file that encodes it
from the directory /usr/spool/at. The file will be named after
the time that it is set to execute, plus a unique two-character
suffix, should more than one command be scheduled to run at the
same time. For example, the file for the above command would be
named 9108101435.aa.
Finally, note that the current working directory, exported shell
variables, file creation mask, user id, and group id are restored
when the given command is executed.
***** Files *****
/bin/pwd -- To find current directory
/usr/lib/atrun -- Execute scheduled commands
/usr/spool/at -- Scheduled activity directory
/usr/spool/at/ yymmddhhmm.xx -- Commands scheduled at given time
***** See Also *****
at, commands, cron
COHERENT Lexicon Page 3