19. Linux的at定时任务调度

19. Linux的at定时任务调度,第1张

与crond不同的是,at任务调度是一次性的,而crond是重复性的

1.1 at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行

1.2 默认情况下,atd守护进程每60s检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业

1.3 at命令是一次性定时计划任务,执行完一个任务后就不再执行这个任务了

1.4 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令查看

    ps -ef | grep atd 可以检查atd是否在运行

at [选项] [时间]

按两次 ctrl+d 结束at命令的输入

4.1 当天的hh:mm(小时:分钟),假如这个时间已经过去,那么就第二天的这个时间执行。例如04:00

4.2 模糊的词语,例如midnight、noon、teatime(下午茶时间,16:00左右)

4.3 采用12小时计时制,例如8am

4.4 指定执行命令的具体日期,格式为month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必须跟着写在在指定时间的后面,例如:04:00 2021-3-1就是2021年3月1日凌晨4点整执行

4.5 相对计时法,指定格式为now + count time-units,now就是当前时间,time-units是时间单位,可以是minutes、hours、days、weeks。count是时间的数量,例如:now + 5 minutes

4.6 直接用today、tomorrow来指定完成命令的时间

5.1 2天后的下午5点,执行/bin/ls /home指令

at 5pm + 2 days 按回车键

然后写下那个时刻要执行命令 /bin/ls /home

最后按两次ctrl+d退出at指令

5.2 atq指令可以直接执行,查看系统中待执行的工作任务

5.3 明天17:00输出时间到指定文件内 /root/date100.log

at 17:00 tomorrow 按回车键

date >/root/date100.log

按两次ctrl+d退出at指令的输入

5.4 2分钟后

at now + 2 minutes

5.5 删除已经设置的任务,atrm 编号

可以用atq列出待执行的任务,列出后第一列就是job编号

没明白你的意思,你是指删除at命令编辑时输入的字符,还是删除已经设定的但未执行的任务呢?

如果是编辑任务时删除输入的字符,可以直接使用键盘上的backspace键。如果backspace键无法删除,就得看看当前at命令编辑时使用的编辑器了,知道啥编辑器了,删除字符就按编辑器的 *** 作来就可以了。

如果你指的是删除已设定的任务,那按照下面的 *** 作:

#查询当前有没有at设定的任务

root@ubuntu-ss:~# atq

#很显然没有输出就是没有

#下面设定一个at任务

root@ubuntu-ss:~# at 13:00

warning: commands will be executed using /bin/sh

at> cat /etc/passwd > /tmp/copy_passwd

at> <EOT>

job 2 at Mon Feb 20 13:00:00 2017

#再查询一下看看 

root@ubuntu-ss:~# atq

2 Mon Feb 20 13:00:00 2017 a root

#看到上面有一个job id为2的任务,就是刚刚创建

#要删除上面的job id为2的任务,使用atrm命令删除

root@ubuntu-ss:~# atrm 2

#删除之后,再查查

root@ubuntu-ss:~# atq

root@ubuntu-ss:~#

很简单的,自己试试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7513887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存