AT Utility - A quick guide to At jobs in Sun Solaris
The at utility reads commands from standard input and groups them together as an at job, to be executed at a later time.
List AT jobs
To list all the at jobs scheduled on the Sun Server
sunsolaris# at -l
user = root 1210161000.a Wed May 7 12:50:00 2008
user = root 1210161001.a Wed May 7 12:50:01 2008
user = root 1210198500.a Wed May 7 23:15:00 2008
user = root 1210331460.a Fri May 9 12:11:00 2008
user = root 1210198320.a Wed May 7 23:12:00 2008
To run a command at a particular time
sunsolaris# at -t 200805072312
at> reboot
at>
commands will be executed using /sbin/sh
job 1210198320.a at Wed May 7 23:12:00 2008
In the above -t switch defines the time that follows it as the time at which the one or more command that follows at the “at>” prompt to be run. Once, all the commands are entered press “CTRL+D” to make “at” aware of the end of commands.
Run a job now
sunsolaris# at now
at>reboot
at>
commands will be executed using /sbin/sh
job 1210100190.a at Tue May 6 19:56:30 2008
Run at noon (12pm)
sunsolaris# at noon
at> uname -a
at>
commands will be executed using /sbin/sh
job 1210158000.a at Wed May 7 12:00:00 2008
Run at midnight
sunsolaris# at midnight
at> uname -a
at>
commands will be executed using /sbin/sh
job 1210114800.a at Wed May 7 00:00:00 2008
To run a job “n” mins from now
Say you want to run the command in 5 minutes from now
sunsolaris# at now + 5minutes
at> uname -a
at>
commands will be executed using /sbin/sh
job 1210100631.a at Tue May 6 20:03:51 2008
To run a script or a file
sunsolaris# at -f /root/myscript now
The above runs the script /root/myscript immediatly. The switch “-f” defines the file to be run instead of commands.
To remove/cancel an at job
sunsolaris# at -r
For instance, in the following list of jobs I want to cancel the last job “1210100631.a” job.
sunsolaris# at -l
user = root 1210161000.a Wed May 7 12:50:00 2008
user = root 1210161001.a Wed May 7 12:50:01 2008
user = root 1210198500.a Wed May 7 23:15:00 2008
user = root 1210331460.a Fri May 9 12:11:00 2008
user = root 1210198320.a Wed May 7 23:12:00 2008
user = root 1210158000.a Wed May 7 12:00:00 2008
user = root 1210114800.a Wed May 7 00:00:00 2008
user = root 1210100631.a Tue May 6 20:03:51 2008sunsolaris# at -r 1210100631.a
sunsolaris# at -l
user = root 1210161000.a Wed May 7 12:50:00 2008
user = root 1210161001.a Wed May 7 12:50:01 2008
user = root 1210198500.a Wed May 7 23:15:00 2008
user = root 1210331460.a Fri May 9 12:11:00 2008
user = root 1210198320.a Wed May 7 23:12:00 2008
user = root 1210158000.a Wed May 7 12:00:00 2008
user = root 1210114800.a Wed May 7 00:00:00 2008
Now, you can see the last job removed from the scheduled list.
at job using a desired shell
To use C shell (csh)
sunsolaris -c -f /etc/myfile now
-c specifies the shell to be used as bash.
To use bash (sh)
sunsolaris -s -f /etc/myfile now
-s specifies the shell to be used as bash.
To email user
To email user who scheduled the at job once the at command is run
sunsolaris -m -f /etc/myfile now
The -m specifies at job to email the user once the job is run.
The at jobs are saved as files under
/var/spool/cron/atjobs
To see whats in a job, do a “cat”
sunsolaris# cat 1210114800.a
: at job
: jobname: stdin
: notify by mail: no
: project: 1
export HOME; HOME=’/’
export HZ; HZ=”
export LANG; LANG=’C’
export LOGNAME; LOGNAME=’root’
export MAIL; MAIL=’/var/mail/root’
export PATH; PATH=’/usr/sbin:/usr/bin’
export SHELL; SHELL=’/sbin/sh’
export TERM; TERM=’xterm’
export TZ; TZ=’GB’
$SHELL << ‘…the rest of this file is shell input’
#ident “@(#).proto 1.6 00/05/01 SMI” /* SVr4.0 1.2 */
cd /etc/dhcp
umask 22
ulimit unlimited
uname -a
Comments