当应用shell脚本时,你可能想在某个特定的工夫运行shell脚本,Linux零碎中提供了多个在特定工夫运行shell脚本的办法,其中一种办法就是应用at命令。
at命令容许指定Linux零碎何时运行脚本,at命令会将作业提交到队列中,指定shell何时运行该作业。at的守护过程atd会当前台模式运行,查看作业队列来运行作业。atd守护过程会查看零碎上的一个非凡目录来获取at命令的提交的作业。默认状况下,atd守护过程每60秒查看一次目录。有作业时,会查看作业运行工夫,如果工夫与以后工夫匹配,则运行此作业。
at容许应用一套相当简单的指定工夫的办法。它可能承受在当天的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(今天)来指定实现命令的工夫。
须要装置此命令
Centos
> yum -y install at> systemctl start atd> systemctl enable atd
Ubuntu
> sudo apt-get install at -y
命令格局
at [参数] [工夫]
命令性能
在一个指定的工夫执行一个指定工作,只能执行一次
命令参数
- -m 当指定的工作被实现之后,将给用户发送邮件,即便没有规范输入
- -I atq的别名
- -d atrm的别名
- -v 显示工作将被执行的工夫
- -c 打印工作的内容到规范输入
- -V 显示版本信息
- -q<列队> 应用指定的列队
- -f<文件> 从指定文件读入工作而不是从规范输出读入
- -t<工夫参数> 以工夫参数的模式提交要运行的工作
其它命令
- atq 查看所有工作
- atrm 删除一个工作
at容许应用一套相当简单的指定工夫的办法。他可能承受在当天的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(今天)来指定实现命令的工夫。
三天后的下午 4 点执行 /bin/ls
at 4pm+ 3daysat> /bin/lsat> <EOT>job 5 at Tue Mar 16 16:00:00 2021
<EOT>
按按ctrl+d
今天10点钟,输入工夫到指定文件内
> at 10:00 tomorrowat> date > /tmp/a.logat> <EOT>job 6 at Sun Mar 14 10:00:00 2021
<EOT>
按按ctrl+d
查看at的工作列表
> atq5 Tue Mar 16 16:00:00 2021 a root6 Sun Mar 14 10:00:00 2021 a root
显示曾经设置的工作内容
> at -c 5#!/bin/sh/bin/ls
删除曾经设置的工作
> atrm 5
原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站