• Linux at任务调度机制


    1.at简介

    at命令是一次性定时计划任务执行

    要想使用 at 命令,读者需提前安装好 at 软件包,并开启 atd 服务。

    如何检查系统开启atd服务?很简单,通过如下命令即可:

    如下表示atd进程处在运行状态:

    ┌──(root㉿kali)-[~/Desktop]
    └─# ps -ef | grep atd
    daemon     10928       1  0 10:22 ?        00:00:00 /usr/sbin/atd -f
    root       12948    8215  0 10:25 pts/1    00:00:00 grep --color=auto atd
    
    • 1
    • 2
    • 3
    • 4

    at命令每隔60秒检查一次系统中的job任务,如果有待执行的任务,则执行它,这个任务是一次性执行的,不会反复执行


    2.at命令的基本使用语法

    at 命令的格式非常简单,基本格式如下:

    [root@localhost ~] # at [选项] [时间]
    
    • 1

    接下来介绍一下有关此命令常用的几个选项及各自含义:*

    选项介绍
    -m当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户
    -c工作标识号 显示该 at 工作的实际内容
    -t时间 在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm
    -d删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同
    -l列出当前所有等待运行的工作,和 atq 命令具有相同的额作用
    -f脚本文件 指定所要提交的脚本文件

    at 命令时间参数可用格式:

    格式用法
    HH:MM比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行
    Midnight代表 12:00 AM(也就是 00:00)
    Noon代表 12:00 PM(相当于 12:00)
    Teatime代表 4:00 PM(相当于 16:00)
    指定具体日期例如:04:00 2021-12-1
    相对计时法,now+时间以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行

    3.at使用案例解析

    2分钟后,输出时间到指定的文件内:

    输入命令如下:

    ┌──(root💀kali)-[~]
    └─# at now + 2 minutes                                                                                                                   1 ⨯
    warning: commands will be executed using /bin/sh
    at Wed Sep 21 05:36:00 2022
    at> date > dahe/temp/index.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5

    接着需要按住Ctrl +D退出at指令,保存任务到job队列中

    可以使用atq命令查看当前待执行的job队列:

    ┌──(root💀kali)-[~]
    └─# atq               
    1       Wed Sep 21 05:36:00 2022 a root
    
    • 1
    • 2
    • 3

    等待两分钟后,进入指定的目录,可以看到,定时任务已经成功执行啦!

    ┌──(root💀kali)-[~/dahe/temp]
    └─# cat index.txt            
    Wed Sep 21 05:36:00 AM EDT 2022
    
    • 1
    • 2
    • 3

    如果想要删除已经设置的定时任务,使用atrm指令即可,例如:

    ┌──(root💀kali)-[~]
    └─# atq                
    2       Wed Sep 21 05:49:00 2022 a root
                                                                                                                                                 
    ┌──(root💀kali)-[~]
    └─# atrm 2
                                                                                                                                                 
    ┌──(root💀kali)-[~]
    └─# atq  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    汇聚荣做拼多多口碑怎么样?
    OpenGL原理与实践——核心模式(五):颜色、基础光照、Phong模型、材质与光
    基于GATK流程化进行SNP calling
    手机快充协议
    内网渗透之Windows反弹shell(二)
    RegNet架构复现--CVPR2020
    交叉验证太重要了!
    基于SqlNode的血缘解析
    [C++]共享内存cmake报错undefined reference to symbol ‘shm_unlink@@GLIBC_2.2.5
    cocos-lua定时器用法
  • 原文地址:https://blog.csdn.net/Gherbirthday0916/article/details/126963076