Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
at(1)				  User Commands 			   at(1)

NAME
     at, batch - execute commands at a later time

SYNOPSIS
     /usr/bin/at [-c | -k | -s] [-m] [-f file] [-p project]
	  [-q queuename] -t time

     /usr/bin/at [-c | -k | -s] [-m] [-f file] [-p project]
	  [-q queuename] timespec...

     /usr/bin/at -l [-p project] [-q queuename] [at_job_id. ..]

     /usr/bin/at -r at_job_id. ..

     /usr/bin/batch [-p project]

     /usr/xpg4/bin/at [-c | -k | -s] [-m] [-f file] [-p project]
	  [-q queuename] -t time

     /usr/xpg4/bin/at [-c | -k | -s] [-m] [-f file] [-p project]
	  [-q queuename] timespec...

     /usr/xpg4/bin/at -l [-p project] [-q queuename]
	  [at_job_id. ..]

     /usr/xpg4/bin/at -r at_job_id. ..

     /usr/xpg4/bin/batch [-p project]

DESCRIPTION
   at
     The  at utility reads commands from standard input and groups them together
     as an at-job, to be executed at a later time.

     The at-job is executed in a separate invocation of the shell, running in  a
     separate  process group with no controlling terminal, except that the envi-
     ronment variables, current  working  directory,  file  creation  mask  (see
     umask(1)),  and system resource limits (for sh and ksh only, see ulimit(1))
     in effect when the at utility is executed is retained and used when the at-
     job is executed.

     When the at-job is submitted, the at_job_id and scheduled time are  written
     to standard error. The at_job_id is an identifier that is a string consist-
     ing  solely  of  alphanumeric  characters	and  the  period  character. The
     at_job_id is assigned by the system when the job is scheduled such that  it
     uniquely identifies a particular job.

     User notification and the processing of the job's standard output and stan-
     dard error are described under the -m option.

     Users  are  permitted to use at and batch (see below) if their name appears
     in the file /usr/lib/cron/at.allow. If that file does not exist,  the  file
     /usr/lib/cron/at.deny  is checked to determine if the user should be denied
     access  to  at.  If  neither  file  exists,  only	a  user  with  the   so-
     laris.jobs.user  authorization  is allowed to submit a job. If only at.deny
     exists and is empty, global usage is permitted. The  at.allow  and  at.deny
     files consist of one user name per line.

     cron  and at jobs are not be executed if the user's account is locked. Only
     accounts which are not locked as defined in shadow(4) will have  their  job
     or process executed.

   batch
     The batch utility reads commands to be executed at a later time.

     Commands of the forms:

       /usr/bin/batch [-p project]
       /usr/xpg4/bin/batch [-p project]

     are respectively equivalent to:

       /usr/bin/at -q b [-p project] now
       /usr/xpg4/bin/at -q b -m [-p project] now

     where  queue  b  is  a special at queue, specifically for batch jobs. Batch
     jobs are submitted to the batch queue for immediate execution. Execution of
     submitted jobs can be delayed by limits on the number of  jobs  allowed  to
     run concurrently. See queuedefs(4).

OPTIONS
     If the -c, -k, or -s options are not specified, the SHELL environment vari-
     able by default determines which shell to use.

     For  /usr/xpg4/bin/at  and  /usr/xpg4/bin/batch, if SHELL is unset or NULL,
     /usr/xpg4/bin/sh is used.

     For usr/bin/at and /usr/bin/batch, if SHELL is unset or  NULL,  /bin/sh  is
     used.

     The following options are supported:

     -c 	      C shell. csh(1) is used to execute the at-job.

     -k 	      Korn shell. ksh(1) is used to execute the at-job.

     -s 	      Bourne shell. sh(1) is used to execute the at-job.

     -f file	      Specifies  the  path of a file to be used as the source of
		      the at-job, instead of standard input.

     -l 	      (The letter ell.) Reports all jobs scheduled for	the  in-
		      voking  user  if	no  at_job_id operands are specified. If
		      at_job_ids are specified,  reports  only	information  for
		      these jobs.

     -m 	      Sends  mail to the invoking user after the at-job has run,
		      announcing its completion. Standard  output  and	standard
		      error  produced  by  the	at-job are mailed to the user as
		      well, unless redirected elsewhere. Mail is  sent	even  if
		      the job produces no output.

		      If  -m is not used, the job's standard output and standard
		      error is provided to the user by	means  of  mail,  unless
		      they  are redirected elsewhere; if there is no such output
		      to provide, the user is not notified of the job's  comple-
		      tion.

     -p project       Specifies  under which project the at or batch job is run.
		      When used with the -l option, limits the	search	to  that
		      particular  project.  Values  for  project  is interpreted
		      first as a project name, and then as  a  possible  project
		      ID,  if  entirely  numeric. By default, the user's current
		      project is used.

     -q queuename     Specifies in which queue to schedule a job for submission.
		      When used with the -l option, limits the	search	to  that
		      particular  queue. Values for queuename are limited to the
		      lower case letters a through z. By  default,  at-jobs  are
		      scheduled in queue a. In contrast, queue b is reserved for
		      batch  jobs.  Since  queue c is reserved for cron jobs, it
		      can not be used with the -q option.

     -r at_job_id     Removes the jobs with  the  specified  at_job_id	operands
		      that were previously scheduled by the at utility.

     -t time	      Submits  the  job  to  be run at the time specified by the
		      time option-argument, which must have the format as speci-
		      fied by the touch(1) utility.

OPERANDS
     The following operands are supported:

     at_job_id	   The name reported by a previous invocation of the at  utility
		   at the time the job was scheduled.

     timespec	   Submit  the job to be run at the date and time specified. All
		   of the timespec operands are interpreted as if they were sep-
		   arated by space characters and  concatenated.  The  date  and
		   time are interpreted as being in the timezone of the user (as
		   determined  by  the	TZ variable), unless a timezone name ap-
		   pears as part of time below.

		   In the "C" locale, the following describes the three parts of
		   the time specification string. All of  the  values  from  the
		   LC_TIME  categories	in  the  "C"  locale are recognized in a
		   case-insensitive manner.

		   time 	 The time can be specified as one, two	or  four
				 digits. One- and two-digit numbers are taken to
				 be  hours,  four-digit  numbers to be hours and
				 minutes. The time can alternatively  be  speci-
				 fied as two numbers separated by a colon, mean-
				 ing  hour:minute.  An	AM/PM indication (one of
				 the values  from  the	am_pm  keywords  in  the
				 LC_TIME  locale  category) can follow the time;
				 otherwise, a 24-hour clock time is  understood.
				 A  timezone name of GMT, UCT, or ZULU (case in-
				 sensitive) can follow to specify that the  time
				 is  in Coordinated Universal Time.  Other time-
				 zones can be specified using the TZ environment
				 variable. The time field can also be one of the
				 following tokens in the "C" locale:

				 midnight     Indicates  the   time   12:00   am
					      (00:00).

				 noon	      Indicates the time 12:00 pm.

				 now	      Indicate the current day and time.
					      Invoking	at now submits an at-job
					      for potentially  immediate  execu-
					      tion (that is, subject only to un-
					      specified scheduling delays).

		   date 	 An  optional  date can be specified as either a
				 month name (one of the values from the  mon  or
				 abmon	keywords in the LC_TIME locale category)
				 followed by a day  number  (and  possibly  year
				 number  preceded  by  a  comma) or a day of the
				 week (one of the values from the day  or  abday
				 keywords  in  the LC_TIME locale category). Two
				 special days are recognized in the "C" locale:

				 today	      Indicates the current day.

				 tomorrow     Indicates the  day  following  the
					      current day.

				 If  no  date  is given, today is assumed if the
				 given time is greater than  the  current  time,
				 and  tomorrow	is assumed if it is less. If the
				 given month is less than the current month (and
				 no year is given), next year is assumed.

		   increment	 The optional increment is a number preceded  by
				 a plus sign (+) and suffixed by one of the fol-
				 lowing: minutes, hours, days, weeks, months, or
				 years.  (The singular forms are also accepted.)
				 The keyword next is equivalent to an  increment
				 number  of  + 1. For example, the following are
				 equivalent commands:

				   at 2pm + 1 week
				   at 2pm next week

USAGE
     The format of the at command line shown here is guaranteed only for the "C"
     locale. Other locales are not supported for midnight, noon, now,  mon,  ab-
     mon,  day,  abday,  today,  tomorrow,  minutes, hours, days, weeks, months,
     years, and next.

     Since the commands run in a separate shell invocation, running in	a  sepa-
     rate  process  group  with  no controlling terminal, open file descriptors,
     traps and priority inherited from the invoking environment are lost.

EXAMPLES
   at
     Example 1 Typical Sequence at a Terminal

     This sequence can be used at a terminal:

       $ at -m 0730 tomorrow
       sort < file >outfile
       <EOT>

     Example 2 Redirecting Output

     This sequence, which demonstrates redirecting standard error to a pipe,  is
     useful  in a command procedure (the sequence of output redirection specifi-
     cations is significant):

       $ at now + 1 hour <<!
       diff file1 file2 2>&1 >outfile | mailx mygroup

     Example 3 Self-rescheduling a Job

     To have a job reschedule itself, at can be invoked from within the  at-job.
     For  example,  this "daily-processing" script named my.daily runs every day
     (although crontab is a more appropriate vehicle for such work):

       # my.daily runs every day
       at now tomorrow < my.daily
       daily-processing

     Example 4 Various Time and Operand Presentations

     The spacing of the three portions of the "C" locale timespec is quite flex-
     ible as long as there are no ambiguities. Examples  of  various  times  and
     operand presentations include:

       at 0815am Jan 24
       at 8 :15amjan24
       at now "+ 1day"
       at 5 pm FRIday
       at '17
	    utc+
	    30minutes'

   batch
     Example 5 Typical Sequence at a Terminal

     This sequence can be used at a terminal:

       $ batch
       sort <file >outfile
       <EOT>

     Example 6 Redirecting Output

     This  sequence, which demonstrates redirecting standard error to a pipe, is
     useful in a command procedure (the sequence of output redirection	specifi-
     cations is significant):

       $ batch <<!
       diff file1 file2 2>&1 >outfile | mailx mygroup
       !

ENVIRONMENT VARIABLES
     See environ(5) for descriptions of the following environment variables that
     affect the execution of at and batch: LANG, LC_ALL, LC_CTYPE,  LC_MESSAGES,
     NLSPATH, and LC_TIME.

     DATEMSK	 If  the  environment variable DATEMSK is set, at uses its value
		 as the full path name of  a  template	file  containing  format
		 strings.  The	strings  consist  of  format specifiers and text
		 characters that are used to provide a richer set  of  allowable
		 date  formats in different languages by appropriate settings of
		 the environment variable LANG or LC_TIME. The list of allowable
		 format specifiers is located in the  getdate(3C)  manual  page.
		 The  formats described in the OPERANDS section for the time and
		 date arguments, the special names noon,  midnight,  now,  next,
		 today,  tomorrow, and the increment argument are not recognized
		 when DATEMSK is set.

     SHELL	 Determine a name of a command interpreter to be used to  invoke
		 the at-job. If the variable is unset or NULL, sh is used. If it
		 is  set  to a value other than sh, the implementation uses that
		 shell; a warning diagnostic is printed telling which shell will
		 be used.

     TZ 	 Determine the timezone. The job is submitted for  execution  at
		 the time specified by timespec or -t time relative to the time-
		 zone  specified  by  the  TZ  variable. If timespec specifies a
		 timezone, it overrides TZ. If timespec does not specify a time-
		 zone and TZ is unset or NULL, an unspecified  default	timezone
		 is used.

EXIT STATUS
     The following exit values are returned:

     0	    The  at  utility  successfully submitted, removed or listed a job or
	    jobs.

     >0     An error occurred, and the job will not be scheduled.

FILES
     /usr/lib/cron/at.allow	names of users, one per line, who are authorized
				access to the at and batch utilities

     /usr/lib/cron/at.deny	names of users, one per line, who are denied ac-
				cess to the at and batch utilities

ATTRIBUTES
     See attributes(5) for descriptions of the following attributes:

   /usr/bin/at
     +------------------------------+-----------------------------+
     |	     ATTRIBUTE TYPE	    |	   ATTRIBUTE VALUE	  |
     +------------------------------+-----------------------------+
     | Availability		    |SUNWcsu			  |
     +------------------------------+-----------------------------+
     | CSI			    |Not enabled		  |
     +------------------------------+-----------------------------+
     | Interface Stability	    |Standard			  |
     +------------------------------+-----------------------------+

   /usr/xpg4/bin/at
     +------------------------------+-----------------------------+
     |	     ATTRIBUTE TYPE	    |	   ATTRIBUTE VALUE	  |
     +------------------------------+-----------------------------+
     | Availability		    |SUNWxcu4			  |
     +------------------------------+-----------------------------+
     | CSI			    |Not enabled		  |
     +------------------------------+-----------------------------+
     | Interface Stability	    |Standard			  |
     +------------------------------+-----------------------------+

   /usr/bin/batch
     +------------------------------+-----------------------------+
     |	     ATTRIBUTE TYPE	    |	   ATTRIBUTE VALUE	  |
     +------------------------------+-----------------------------+
     | Availability		    |SUNWesu			  |
     +------------------------------+-----------------------------+
     | CSI			    |Enabled			  |
     +------------------------------+-----------------------------+
     | Interface Stability	    |Standard			  |
     +------------------------------+-----------------------------+

   /usr/xpg4/bin/batch
     +------------------------------+-----------------------------+
     |	     ATTRIBUTE TYPE	    |	   ATTRIBUTE VALUE	  |
     +------------------------------+-----------------------------+
     | Availability		    |SUNWxcu4			  |
     +------------------------------+-----------------------------+
     | CSI			    |Enabled			  |
     +------------------------------+-----------------------------+
     | Interface Stability	    |Standard			  |
     +------------------------------+-----------------------------+

SEE ALSO
     auths(1), crontab(1), csh(1), date(1), ksh(1), sh(1), touch(1),  ulimit(1),
     umask(1), cron(1M), getdate(3C), auth_attr(4), shadow(4), queuedefs(4), at-
     tributes(5), environ(5), standards(5)

NOTES
     Regardless  of queue used, cron(1M) has a limit of 100 jobs in execution at
     any time.

     There can be delays in cron at job execution. In some cases,  these  delays
     can  compound to the point that cron job processing appears to be hung. All
     jobs are executed eventually. When  the  delays  are  excessive,  the  only
     workaround is to kill and restart cron.

SunOS 5.11			   13 Apr 2005				   at(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=at&sektion=1&manpath=OpenSolaris+2010.03>

home | help