用户使用linux at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才能够正常运行

linux at指令

linux at指令运用事例(linux at命令详解)  at命令 at命令详解 使用案例 第1张

用户运用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文档意味着一切的用户都能够运用该指令,这也是默许状况。

#p#

下面临指令中的参数进行阐明。

-V 将规范版本号打印到规范过错中。

-q queue 运用指定的行列。行列名称是由单个字母组成,合法的行列名能够由a-z或A-Z。a行列是linux at指令的默许行列。

-m 作业完毕后发送邮件给履行linux at指令的用户。

-f file 运用该选项将使指令从指定的file读取,而不是从规范输入读取。

-l atq指令的一个别号。该指令用于检查组织的作业序列,他将列出用户排在行列中的作业,假定是***用户,则列出行列中的任何作业。

指令的语法格局如下:

atq [-V] [-q 行列] [-v]

-d atrm 指令的一个别号。该指令用于删去指定要履行的指令序列,语法格局如下:

atrm [-V] 作业 [作业...]

-c 将指令行上所列的作业送到规范输出。

[例4] 找出体系中任何故txt为后缀名的文档,而且进行打印。打印完毕后给用户foxy宣布邮件告诉取件。指守时刻为十二月二十五日清晨两点。

首要键入:

$ at 2:00 12/25/99

然后体系呈现at>提示符,等候用户输入进一步的信息,也便是需求履行的指令序列:

at> find / -name "*.txt"|lpr

at> echo "foxy:All texts have been printed.You can take them over.Good day!River" |mail -s "job done" foxy

输入完每一行指令然后回车,任何指令序列输入完毕后,运用组合键完毕linux at指令的输入。这时分屏幕将呈现如下信息:

warning:command will be executed using /bin/sh.

job 1 at 1999-12-25 02:00

提示用户将运用哪个shell来履行该指令序列。

实际上假定指令序列较长或常常被履行的时分,一般都选用将该序列写到一个文档中,然后将文档作为linux at指令的输入来处理。这样不容易犯错。

[例5] 上面的比如能够修正如下:

将指令序列写入到文档/tmp/printjob,句子为:

$ at -f /tmp/printjob 2:00 12/25/99

这样一来,linux at指令将运用文档中的指令序列,屏幕显现如下:

Warning:command will be executed using /bin/sh.

job 2 at 1999-12-25 02:00

/sbin/service crond start //发动服务

/sbin/service crond stop //封闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //从头载入装备

能够将这个服务在体系发动的时分也主动发动:

在/etc/rc.d/rc.local这个脚本的结尾加上:

/sbin/service crond start

以上是linux at指令的运用事例。

【修改引荐】

  1. linux at指令详解及运用方法事例
  2. Linux操作体系顶用Linux at指令守时发送邮件
  3. linux中的cron和linux at指令用法详解
转载请说明出处
知优网 » linux at指令运用事例(linux at命令详解)

发表评论

您需要后才能发表评论