雨
分类: LINUX
2011-03-13 23:46:44
at 学习汇总
1、概要
at命令允许用户向cron守护进程提交作业,使其在稍后的时间运行。
一旦一个作业被提交,at命令将会保留所有当前的环境变量,包括路径,不像crontab只提供缺省的环境。输出结果都以电子邮件的形式发送给用户,除非进行了重定向。和crontab类似,root用户可以通过/etc/目录下的at.allow和at.deny文件来控制哪些用户可以使用at命令,哪些用户不行。
2、at命令的基本形式为
at [-f script] [-m -l -r] [time] [date]
其中:
2.1、 -f script 是所要提交的脚本或命令。
2.2、-l 列出当前所有等待运行的作业。a t q命令具有相同的作用。
-r 清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些UNIX变体只接受atrm作为清除命令。
-m 作业完成后给用户发邮件。
2.3、 timeat命令的时间格式非常灵活:可以是H、HH.HHMM、HH:MM或H:M,其中H和M分别是小时和分钟;还可以使用a.m .或p.m .。
2.4、date
日期格式可以是月份数或日期数,而且a t命令还能够识别诸如today、tomorrow这样的词。
3、提交作业
使用at命令提交作业有几种不同的形式,可以通过命令行方式,也可以使用at命令提示符。一般来说在提交若干行的系统命令时,可以使用at命令提示方式,而在提交shell脚本时 ,可以使用命令行方式。
如果你想提交若干行的命令,可以在at命令后面跟上日期/时间并回车。然后就进入了at命令提示符,这时只需逐条输入相应的命令,
然后按‘
’退出。
下面给出一个例子:
- # at 21:30
- at> find / -name "passwd" –print
- at>EOF
其中
就是 ,在21:10系统将执行一个简单的find命令。 你应当已经注意到,我所提交的作业被分配了一个唯一标识job 1
4、清除作业
命令使用方式:
- # atrm [job number] 或 # at -r [job number]
- # at -l
- 2 1999-05-05 23:00 a
- 3 1999-06-05 23:00 a
- # at -r 3 或 # atrm 3
- # at -l
- 2 1999-05-05 23:00 a
5、列出所提交的作业
- # at -l
还可以使用atq命令来完成同样的功能,它是at命令的一个链接。当提交一个作业后,它就被拷贝到/var/spool/at目录中,准备在要求的时间运行。
举例:
- # at 3.00pm tomorrow -f /apps/bin/a.sh
a.sh将在明天下午3:00运行也可以
- # echo 'find /etc/ -name "passwd" -print' | at now+1 minute
在一分钟之后执行find。
网络上《LINUX与UNIX+SHELL编程指南》和《LINUX与UNIX+SHELL编程指南》读书笔记 确实不错,不懂的地方可以从中很快获得帮助。向大家推荐一下。
文章可能是多方学习的汇总,可能多方引用了知识点,仅仅用来学习,以备复习。如遇版权问题,请及时通知,我将马上处理。