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

FreeBSD Manual Pages


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

       at, batch - execute commands at a later time

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

       at  [-c	|  -k  | -s]  [-m] [-f file] [-p project] [-q queuename] time-

       at -l [-p project] [-q queuename] [ at_job_id. ..]

       at -r at_job_id.	..

       batch [-p project]

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

       The at-job will be executed in a	separate invocation of the shell, run-
       ning in a separate process group	with no	controlling  terminal,	except
       that  the  environment  variables, current working directory, file cre-
       ation mask (see umask(1)), and system resource limits (for sh  and  ksh
       only,  see ulimit(1)) in	effect when the	at utility is executed will be
       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 will be
       a string	consisting 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
       standard	error are described under the -m option.

       Users  are  permitted to	use at and batch (see below) if	their name ap-
       pears 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 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  will  be  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.

       The  batch utility reads	commands to be executed	at a later time. It is
       the equivalent of the command:

       at -q b -m now
       where queue b is	a special at queue, specifically for batch jobs. Batch
       jobs will be submitted to the batch queue for immediate execution.

       The  following  options are supported. If the -c, -k, or	-s options are
       not specified, the SHELL	environment  variable  by  default  determines
       which shell to use.

       -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  invoking
	     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,  an-
	     nouncing  its completion. Standard	output and standard error pro-
	     duced by the at-job will be mailed	to the user  as	 well,	unless
	     redirected	 elsewhere. Mail will be sent even if the job produces
	     no	output.

	     If	-m is not used,	the job's standard output and  standard	 error
	     will  be  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 completion.

       -p project
	     Specifies	under  which  project the at or	batch job will be run.
	     When used with the	-l option, limits the search to	that  particu-
	     lar  project.  Values  for	project	will be	interpreted first as a
	     project name, and then as a possible project ID, if entirely  nu-
	     meric. 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 will be 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 op-
	     tion-argument, which must have the	format	as  specified  by  the
	     touch(1) utility.

       The following operands are supported:

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

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

	     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

	     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  specified  as two numbers separated by a	colon, meaning
		   hour:minute.	An AM/PM indication (one of  the  values  from
		   the am_pm keywords in the LC_TIME locale category) can fol-
		   low the time; otherwise, a 24-hour  clock  time  is	under-
		   stood.  A timezone name of GMT, UCT,	or ZULU	(case insensi-
		   tive) can follow to specify that the	time is	in Coordinated
		   Universal Time.  Other timezones can	be specified using the
		   TZ environment variable. The	time field can also be one  of
		   the following tokens	in the "C" locale:

			 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
			 will submit an	at-job for potentially immediate  exe-
			 cution	(that is, subject only to unspecified schedul-
			 ing 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 pos-
		   sibly 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.

		   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.

	     The  optional  increment  is a number preceded by a plus sign (+)
	     and suffixed by one  of  the  following:  minutes,	 hours,	 days,
	     weeks,  months,  or  years.  (The singular	forms will be also ac-
	     cepted.) 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

       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,  abmon,  day, abday, today,	tomorrow, minutes, hours, days,	weeks,
       months, years, and next.

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

       Example 1: Typical sequence at a	terminal

       This sequence can be used at a terminal:

       $ at -m 0730 tomorrow
       sort < file >outfile

       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
       specifications 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  will
       run  every day (although	crontab	is a more appropriate vehicle for such

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

       Example 4: Various time and operand presentations

       The spacing of the three	portions of the	"C" locale timespec  is	 quite
       flexible	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

       Example 5: Typical sequence at a	terminal

       This sequence can be used at a terminal:

       $ batch
       sort <file >outfile

       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
       specifications is significant):

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

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

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

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

	     If	the environment	variable DATEMSK is set, at will use its value
	     as	the full path  name  of	 a  template  file  containing	format
	     strings.  The strings consist of format specifiers	and text char-
	     acters that are used to provide a richer set  of  allowable  date
	     formats in	different languages by appropriate settings of the en-
	     vironment 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	 argu-
	     ments, the	special	names noon, midnight, now, next, today,	tomor-
	     row, and the increment argument are not recognized	 when  DATEMSK
	     is	set.

       The following exit values are returned:

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

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

	     names of users, one per line, who are authorized access to	the at
	     and batch utilities

	     names of users, one per line, who are denied access to the	at and
	     batch utilities

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

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |CSI			     |Not enabled		   |

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWesu			   |
       |CSI			     |Enabled			   |

       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),
       attributes(5), environ(5)

       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 de-
       lays can	compound to the	point that cron	job processing appears	to  be
       hung.  All jobs will be executed	eventually. When the delays are	exces-
       sive, the only workaround is to kill and	restart	cron.

SunOS 5.9			  11 Jan 2002				 at(1)


Want to link to this manual page? Use this URL:

home | help