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
at命令每隔60秒检查一次系统中的job任务,如果有待执行的任务,则执行它,这个任务是一次性执行的,不会反复执行
2.at命令的基本使用语法
at 命令的格式非常简单,基本格式如下:
[root@localhost ~] # at [选项] [时间]
接下来介绍一下有关此命令常用的几个选项及各自含义: 🤷♀️
选项 |
介绍 |
-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
接着需要按住Ctrl +D
退出at指令,保存任务到job队列中
可以使用atq命令查看当前待执行的job队列:
┌──(root💀kali)-[~] └─# atq 1 Wed Sep 21 05:36:00 2022 a root
等待两分钟后,进入指定的目录,可以看到,定时任务已经成功执行啦!
┌──(root💀kali)-[~/dahe/temp] └─# cat index.txt Wed Sep 21 05:36:00 AM EDT 2022
如果想要删除已经设置的定时任务,使用atrm指令即可,例如:
┌──(root💀kali)-[~] └─# atq 2 Wed Sep 21 05:49:00 2022 a root ┌──(root💀kali)-[~] └─# atrm 2 ┌──(root💀kali)-[~] └─# atq