CentOS_计划任务之At

Posted 正月十六工作室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS_计划任务之At相关的知识,希望对你有一定的参考价值。


CentOS 8计划任务之At


目录


1 常见的计划任务

在Linux系统中,常见的能实现定时任务的软件有at、cron和anacron。
其中,各个服务有其独特的点:

(1)	At:适合仅执行一次就结束的调度命令,需要在后台启动守护进程atd;
(2)	Cron:适合脚本、单句命令的调度,需要在后台启动守护进程Crond,并通过Crondtab命令实现;
(3)	Anacron:适合实现以天为周期,在关机状态下未执行的任务可在开机后继续执行。

有些计划任务是只需要执行一次就能完成的,这时候就需要使用到At服务啦;本文将着重介绍At服务。

2 了解At

2.1 At的使用

2.2.1 At服务

一般情况下At服务默认安装并开启。
如果系统没有安装,可以输入以下命令安装At服务

yum install -y at

常规的控制命令

systemctl start at  //启动At服务
systemctl stop at  //停止At服务
systemctl reload at  //重载At服务
systemctl restart at  //重启At服务

设置At服务开机自启

systemctl enable at

检查At是否已设置为开机自启

ntsysv  //用于设置系统的各种服务的软件

如果At服务已设为开机自启,则输入上述命令的情况,如图2-1所示。

图2-1 通过ntsysv查看At服务是否设为开机自启

2.2.2 At名单

为了提高安全性,可以通过修改At的名单文件,允许或限制特定用户使用At服务。涉及At的名单文件有两个,详情请见下表。

表2-1 At的白名单和黑名单对比

通过表格归纳,我们发现At的白名单要比黑名单优先;一般来说,建议保留一个名单即可(然而系统默认是保留黑名单,即 /etc/at.deny 文件)。

2.2.3 At命令

At命令的格式如下所示。

At [参数 -v|-q|-f|-l|-d|-m] [时间]

参数说明

表2-1 At命令参数


提示:使用 -f 参数的时候,最好指定的是绝对路径,以避免不必要的麻烦;同时At计划任务的默认目录为 /var/spool/at/ 中。
At命令支持多种时间参数(格式),详情请浏览下表。
At的时间参数

表2-2 At时间参数


💡提示:At的时间可以组合

3 操作示例

3.1 操作平台

本操作示例将以CentOS 8.2为模板,在X86-64平台上,使用VMware虚拟机,其主要参数如下表。

表3-1 虚拟机配置参数

3.2 项目操作:使用At

3.2.1 创建计划任务

在2021年6月16日下午4点16分执行命令 wall “hello”,如图3-1所示。

#at 16:16 06162021
at> wall “hello”

输入完成之后,按Ctrl键+D键保存并退出。
于此同时,如果时间还没到,At服务会反馈该计划任务的工作号(例如下图的1号),我们可以通过该工作号查询和删除该计划任务。

图3-1 创建计划任务

3.2.2 查询计划任务

查询章节3.2.1中创建的计划任务,如图3-2、3-3所示。

At -c 1 //这里的1视具体的工作号而定(默认从1开始)

输入完成后,我们能看到该任务的详细信息,如下图所示(节选);其中,在详细信息的最底部能看到待执行的计划任务的命令。

图3-2 查看创建的计划任务1详情(节选)

图3-3 查看创建的计划任务1详情(节选)

3.2.3 删除计划任务

删除章节3.2.2中创建的计划任务,如图3-4所示。

At -d 1 //这里的1视具体的工作号而定(默认从1开始)

输入完成后,并不会出现任何提示,此时再输入 at -c 1 会提示找不到该工作号了。

图3-4 删除该计划任务并再次查询

提示:你也可以在 /var/spool/at目录中删除该计划任务文件;删除了该文件,则对应的计划任务也将会被取消。

制作成员: 陈诺
排版: 郑伟钦
初审: 杨佳佳
复审: 二月二


点击下方“正月十六工作室”查看更多学习资源

正月十六工作室

以上是关于CentOS_计划任务之At的主要内容,如果未能解决你的问题,请参考以下文章

CentOS_计划任务之At

centos7计划任务

centos7—计划任务(atcron)

Linux/Centos7系统管理之进程与计划任务管理

linux下定时任务计划的使用

概论:任务计划at与cron