linux at命令使用案例(1)


linux at命令

用户使用linux at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才能够正常运行。linux at命令能够只指定时间,也能够时间和日期一起指定。需要注意的是,指定时间有个系统判别问题。比如说:用户现在指定了一个执行时间:凌晨3:20,而发出linux at命令的时间是头天晚上的20:00,那么究竟是在哪一天执行该命令呢?假如用户在3:20以前仍然在工作,那么该命令将在这个时候完成;假如用户3:20以前就退出了工作状态,那么该命令将在第二天凌晨才得到执行。下面是linux at命令的语法格式:

at [-V] [-q 队列] [-f 文档名] [-mldbv] 时间

at -c 作业 [作业...]

at允许使用一套相当复杂的指定时间的方法,实际上是将POSIX.2标准扩展了。他能够接受在当天的hh:mm小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight深夜),noon中午),teatime饮茶时间,一般是下午4点)等比较模糊的

词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM上午)或PM下午)来说明是上午还是下午。

也能够指定命令执行的具体日期,指定格式为month day月 日)或mm/dd/yy月/日/年)或dd.mm.yy日.月.年)。指定的日期必须跟在指定时间的后面。

上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes分钟)、hours小时)、days天)、weeks星期)。count是时间的数量,究竟是几天,还是几小时,等等。

更有一种计时方法就是直接使用today今天)、tomorrow明天)来指定完成命令的时间。下面通过一些例子来说明具体用法。

[例2] 指定在今天下午5:30执行某命令。假设现在时间是中午12:30,1999年2月24日,其命令格式如下:

at 5:30pm

at 17:30

at 17:30 today

at now + 5 hours

at now + 300 minutes

at 17:30 24.2.99

at 17:30 2/24/99

at 17:30 Feb 24

以上这些命令表达的意义是完全相同的,所以在安排时间的时候完万能够根据个人喜好和具体情况自由选择。一般采用绝对时间的24小时计时法能够避免由于用户自己的疏忽造成计时错误的情况发生,例如上例能够写成:

at 17:30 2/24/99

这样很清楚,而且别人也看得懂。

对于linux at命令来说,需要定时执行的命令是从标准输入或使用-f选项指定的文档中读取并执行的。假如linux at命令是从一个使用su命令转换到用户shell中

执行的,那么当前用户被认为是执行用户,任何的错误和输出结果都会送给这个用户。但是假如有邮件送出的话,收到邮件的将是原来的用户,也就是登录时shell的任何者。

[例3]

$ at -f work 4pm + 3 days

在三天后下午4点执行文档work中的作业。

$ at -f work 10am Jul 31

在7月31日上午10点执行文档work中的作业。

在任何情况下,终极用户都能够使用这个命令。对于其他用户来说,是否能够使用就取决于两个文档:/etc/at.allow和/etc/at.deny。

假如/etc/at.allow文档存在的话,那么只有在其中列出的用户才能够使用linux at命令;假如该文档不存在,那么将检查/etc/at.deny文档

是否存在,在这个文档中列出的用户均不能使用该命令。假如两个文档都不存在,那么只有终极用户能够使用该命令;空的/etc/at.deny文档意味着所有的用户都能够使用该命令,这也是默认状态。


相关内容