首页 > 编程知识 正文

linux时间命令,串口at指令使用方法

时间:2023-05-05 04:22:05 阅读:39281 作者:4800

摘要:用户使用linuxat命令在指定时间点运行指定的命令序列。 也就是说,为了命令正常工作,必须至少指定一个命令、一个执行时间

linuxat命令

用户使用linuxat命令在指定时间点执行指定的命令序列。 也就是说,要使此命令正常运行,必须至少指定一个命令,一个执行时间。 linuxat命令可以只指定时间,也可以同时指定时间和日期。 需要注意的是,在指定时间存在系统判别问题。 例如,用户现在指定的运行时间为上午3:20点,但linuxat命令是在前一天晚上的20:00点发出的,到底是什么时候发出的? 如果用户在3:20之前仍在工作,此命令此时将完成。 如果用户3:20以前退出过工作状态,将在第二天凌晨运行此命令。 以下是linuxat命令的语法格式。

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

ATC工作[工作. ]

at允许一组相当复杂的时间指定方法,实际上扩展了POSIX.2标准。 他可以接受当天hh:mm (时间:分钟)式的时间指定。 这个时间过去后,第二天运行。 当然midnight (深夜)、noon )、teatime ) )饮茶时间,通常下午4点)等模糊的东西也可以使用

用语言指定时间。 用户也可以采用12小时计时制。 也就是说,在时间之后加上AM (上午)或PM (下午),说明是上午还是下午。

也可以指定执行命令的具体日期。 指定monthday (月日)或mm/dd/yy (月/日/年)或dd.mm.yy (日.月.年)的格式。 指定的日期必须跟在指定时间之后。

上面介绍的是绝对计时法,但实际上也可以使用相对计时法。 这将有助于安排即将执行的命令。 指定格式为: now counttime-units,now为当前时间,time-units为时间单位,这里为minutes (分钟)、hours (小时)、days (天)、weeks ) (星期几) 计数是时间的数量,是几天、几个小时等等。

另外,还有直接使用today (今天)、tomorrow (明天) )指定完成指令的时间的计时方法。 用几个例子说明具体的使用方法。

[例2]指定执行今天下午5:30处的指令。 假设当前时间为中午12:30,即1999年2月24日,则命令格式如下:

at5:30pm

at17:30

at 17:30托代

atnow 5hours

atnow 300minutes

at17:3024.2.99

at17:302/24/99

at17:30Feb24

这些命令表达的意思完全一样,安排时间时,大家可以根据个人喜好和情况自由选择。 一般采用绝对时间的24小时计时法,可以避免由于用户自身的疏忽而发生计时错误。 例如,上面的示例可以写为:

at17:302/24/99

这样清楚,而且别人也明白。

对于linuxat命令,需要定时执行的命令是从标准输入或使用-f选项指定的文档中读取并执行的。 假设使用su命令将linuxat命令转换为用户shell

运行时,当前用户被视为执行用户,所有错误和输出结果都将发送给此用户。 但是,如果有邮件发送,则收到邮件的将是原始用户,也就是登录时的shell中的某个人。

[例3]

$at-fwork4pm 3days

三天后下午四点运行文档工作。

$at-fwork10amJul31

7月31日上午10点运行文档工作。

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

如果/etc/at.allow文档存在,则只有此处列出的用户才能使用linuxat命令。 如果文档不存在,则会检查/etc/at.deny文档

存在吗? 本文档中列出的用户无法使用此命令。 如果两个文档都不存在,则只有终极用户才能使用此命令。 空的/etc/at.deny文档意味着所有用户都可以使用此命令,这也是默认状态。

说明指令中的参数。

-V将标准版本号打印到标准错误中。

- q队列使用指定的队列。 队列名称可以由单个字符组成,有效队列名称可以是a-z或a-z。 a队列是linuxat命令的默认队列。

-m作业完成后,向运行linuxat命令的用户发送邮件。

-ffile如果使用此选项,命令将从指定的file读取,而不是从标准输入读取。

-latq命令的别名。 此命令用于显示计划的作业序列,列出用户排队的作业,或者如果是最终用户,则列出排队的作业。

命令的语法格式为:

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

p>-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 /霸气的外套/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 /霸气的外套/sh.

job 2 at 1999-12-25 02:00

/s霸气的外套/service crond start //启动服务

/s霸气的外套/service crond stop //关闭服务

/s霸气的外套/service crond restart //重启服务

/s霸气的外套/service crond reload //重新载入配置

可以将这个服务在系统启动的时候也自动启动:

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

/s霸气的外套/service crond start

以上是linux at命令的使用案例。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。