使用at命令提交命令或脚本 使用a t命令提交作业有几种不同的形式,可以通过命令行方式,也可以使用a t命令提示符。一般来说在提交若干行的系统命令时,使用a t命令提示符方式,在提交s h e l l脚本时,使用命令行方式。 命令行方式: at [-f script] [-m -l -r] [time] [date] 提示符方式: 以在a t命令后面跟上日期/时间并回车。然后就进入了a t命令提示符,这时只需逐条输入相应的命令,然后按‘ < C T R L - D >’退出。
1、例一:提示符方式 # su sam $ at 10:40 warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh at> find /etc -name "passwd" -print at> <EOT> job 1 at 2004-11-02 10:40 其中, <EOT>就是<CTRL-D>。在10:40系统将执行一个简单的find命令。提交的作业被分配了一个唯一标识job 1。该命令在完成以后会将全部结果以邮件的形式发送给我。 下面这些日期/时间格式都是at命令可以接受的: at 5.00am May23 at 11.20pm at now +2 hour at 9am tomorrow at 15:00 May24 at now + 10 minutes 2、例二:命令行方式 如果希望向a t命令提交一个shell脚本,使用其命令行方式即可。在提交脚本时使用- f选项。 如: $ touch db_table.sh $ at 3:00pm tomorrow -f db_table.sh warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh job 3 at 2108-11-02 15:00 在上面的例子中,一个叫做db_table.sh的脚本将在2108-11-02 15:00运行。 3、还可以使用e c h o命令向a t命令提交作业: $ echo find /etc -name "passwd" -print | at now +1 minute warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh job 4 at 2108-11-01 19:07 列出所提交的作业 一个作业被提交后,可以使用at -l命令来列出所有的作业: $ at -l 1 2108-11-02 10:40 a sam 3 2108-11-02 15:00 a sam 4 2108-11-01 19:07 a sam 其中,第一行是作业标识,后面是作业运行的日期/时间。最后一列a代表a t。还可以使用a tq命令来完成同样的功能,它是a t命令的一个链接。 直接>atq,相当于>at -l 当提交一个作业后,它就被拷贝到/ v a r / s p o o l / a t目录中,准备在要求的时间运行。 # pwd /var/spool/at # ls -l 清除一个作业 清除作业的命令格式为: atrm [job no] 或at -r [job no] 要清除某个作业,首先要执行at -l命令,以获取相应的作业标识,然后对该作业标识使用at -r 命令,清除该作业。 $ at -l 1 2004-11-02 10:40 a sam 3 2004-11-02 15:00 a sam 4 2004-11-01 19:07 a sam $at -r 3 $at -l 1 2004-11-02 10:40 a sam 4 2004-11-01 19:07 a sam 有些系统使用at-r [job no]命令清除作业。 |