Gentoo Wiki



at is a console command to run a job at a given time


# emerge sys-process/at

at man page

AT(1)                                Linux Programmer's Manual                               AT(1)

       at, batch, atq, atrm - queue, examine or delete jobs for later execution

       at [-V] [-q queue] [-f file] [-mldbv] TIME
       at -c job [job...]
       atq [-V] [-q queue]
       atrm [-V] job [job...]
       batch [-V] [-q queue] [-f file] [-mv] [TIME]

       at and batch read commands from standard input or a specified file which are to be executed
       at a later time, using /bin/sh.

       at      executes commands at a specified time.

       atq     lists the user's pending jobs, unless the user is  the  superuser;  in  that  case,
               everybody's jobs are listed.  The format of the output lines (one for each job) is:
               Job number, date, hour, job class.

       atrm    deletes jobs, identified by their job number.

       batch   executes commands when system load levels permit; in other  words,  when  the  load
               average drops below 0.8, or the value specified in the invocation of atrun.

       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 midnight, 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 MMDDYY  or  MM/DD/YY  or
       DD.MM.YY.   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.

       For example, to run a job at 4pm three days from now, you would do at 4pm + 3 days, to  run
       a  job at 10:00am on July 31, you would do at 10am Jul 31 and to run a job at 1am tomorrow,
       you would do at 1am tomorrow.

       The exact definition of the time specification can be found in  /usr/share/doc/at/timespec.

       For both at and batch, commands are read from standard input or the file specified with the
       -f option and executed.  The working directory, the environment (except for  the  variables
       TERM,  DISPLAY  and  _) and the umask are retained from the time of invocation.  An at - or
       batch - command invoked from a su(1) shell will retain the current userid.  The  user  will
       be  mailed standard error and standard output from his commands, if any.  Mail will be sent
       using the command /usr/sbin/sendmail.  If at is executed from a su(1) shell, the  owner  of
       the login shell will receive the mail.

       The superuser may use these commands in any case.  For other users, permission to use at is
       determined by the files /etc/at/at.allow and /etc/at/at.deny.

       If the file /etc/at/at.allow exists, only usernames mentioned in it are allowed to use  at.

       If  /etc/at/at.allow  does  not  exist, /etc/at/at.deny is checked, every username not men-
       tioned in it is then allowed to use at.

       If neither exists, only the superuser is allowed use of at.

       An empty /etc/at/at.deny means that every user is allowed use these commands, this  is  the
       default configuration.

       -V      prints the version number to standard error.

       -q queue
               uses  the  specified queue.  A queue designation consists of a single letter; valid
               queue designations range from a to z.  and A to Z.  The a queue is the default  for
               at  and the b queue for batch.  Queues with higher letters run with increased nice-
               ness.  The special queue "=" is reserved for jobs which are currently running.

       If a job is submitted to a queue designated with an uppercase letter, it is treated  as  if
       it  had  been  submitted  to batch at that time.  If atq is given a specific queue, it will
       only show jobs pending in that queue.

       -m      Send mail to the user when the job has completed even if there was no output.

       -f file Reads the job from file rather than standard input.

       -l      Is an alias for atq.

       -d      Is an alias for atrm.

       -v      Shows the time the job will be executed.

       Times displayed will be in the format  "1997-02-20  14:50"  unless  the  environment
       variable POSIXLY_CORRECT is set; then, it will be "Thu Feb 20 14:50:00 1996".

       -c     cats the jobs listed on the command line to standard output.


       cron(1), nice(1), sh(1), umask(2), atd(8).

       The  correct  operation  of  batch for Linux depends on the presence of a proc- type
       directory mounted on /proc.

       If the file /var/run/utmp is not available or corrupted,  or  if  the  user  is  not
       logged  on  at  the  time at is invoked, the mail is sent to the userid found in the
       environment variable LOGNAME.  If that is undefined or empty, the current userid  is

       At  and batch as presently implemented are not suitable when users are competing for
       resources.  If this is the case for your site, you might want  to  consider  another
       batch system, such as nqs.

       At was mostly written by Thomas Koenig,

Retrieved from ""

Last modified: Thu, 04 Sep 2008 04:27:00 +0000 Hits: 3,880