at定时任务

1. 基本介绍
  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
  4. 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
    检测当前正在运行的进程:ps -ef
    检测atd的进程(是否在运行):ps -ef |grep atd
[root@localhost ~]# ps -ef |grep atd
root       1203      1  0 10:30 ?        00:00:00 /usr/sbin/atd -f
root       8687   8639  0 14:47 pts/1    00:00:00 grep --color=auto atd
[root@localhost ~]#

linux reboot 定时任务_at命令

2. at命令格式

at [选项][时间]

Ctrl+D结束at命令的输入(2次

linux reboot 定时任务_任务调度_02

3. at时间定义

at指定时间的方法:

  1. 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:
    04:00
  2. 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指
    定时间。
  3. 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm4。
  4. 指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日月年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
  5. 使用相对计时法。指定格式为:now+count time-units,now就是当前时间,time-units是时间单位,
    这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。例如:now+5minutes:5分钟后
  6. 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
应用案例

应用实例
案例1:2天后的下午5点执行/bin/ls /home/logonuser/learn

[root@localhost ~]# at 5pm + 2 days
at> /bin/ls /home/logonuser/learn<EOT>  
job 1 at Wed Apr 13 17:00:00 2022

案例2:atq命令来查看系统中没有执行的工作任务

[root@localhost ~]# atq
1       Wed Apr 13 17:00:00 2022 a root
[root@localhost ~]#

案例3:明天17点钟,输出时间到指定文件内比如/home/logonuser/date100.log

[root@localhost ~]# at 5pm tomorrow
at> date > /home/logonuser/date100.log<EOT>
job 2 at Tue Apr 12 17:00:00 2022
[root@localhost ~]# atq
2       Tue Apr 12 17:00:00 2022 a root
1       Wed Apr 13 17:00:00 2022 a root

案例4:2分钟后,输出时间到指定文件内 比如/home/logonuser/learn/date100.log

[root@localhost learn]# at now + 2 minutes
at> date > /home/logonuser/learn/date100.log<EOT>
job 5 at Mon Apr 11 17:22:00 2022
[root@localhost learn]# atq
2       Tue Apr 12 17:00:00 2022 a root
5       Mon Apr 11 17:22:00 2022 a root
1       Wed Apr 13 17:00:00 2022 a root
[root@localhost learn]# date
2022年 04月 11日 星期一 17:21:21 CST
[root@localhost learn]# ll
总用量 116
-rw-r--r--. 1 root root    43 4月  11 17:22 date100.log
-rw-r--r--. 1 root root 74000 4月  11 17:22 mycal
-rw-r--r--. 1 root root 17200 4月  11 17:22 mydtate
-rwxr--r--. 1 root root    71 4月  11 10:38 mysh.sh
drwxr-xr-x. 2 root root  4096 4月   1 11:25 oneday
[root@localhost learn]# cat date100.log 
2022年 04月 11日 星期一 17:22:01 CST
[root@localhost learn]# atq
2       Tue Apr 12 17:00:00 2022 a root
1       Wed Apr 13 17:00:00 2022 a root
[root@localhost learn]#

linux reboot 定时任务_任务调度_03

案例5:删除已经设置的任务,atrm编号

[root@localhost learn]# atq
2       Tue Apr 12 17:00:00 2022 a root
1       Wed Apr 13 17:00:00 2022 a root
[root@localhost learn]# atrm 2
[root@localhost learn]# atq
1       Wed Apr 13 17:00:00 2022 a root
[root@localhost learn]#