单一例行任务—at命令的介绍与使用

介绍

  • at 命令可以用来在某一时段执行一次任务,只会执行一次,不会重复执行。
  • at的守护进程atd会以后台模式运行,检查作业队列来运行。
  • 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查队列中的所有作业运行时间,
  • 如果时间与当前时间匹配,则运行此作业。(也就是说,at守护 进程的最小时间单位是分钟)

在这里插入图片描述
PS:这里的队列并不是说第一个执行了后面的才能执行,每次都会检查所有的任务
为保证atd进程的启动,可以使用相关指令来查看 ps -ef | grep atd

at命令详解

at [选项] [时间]

主要命令

在这里插入图片描述

所有命令

在这里插入图片描述

at指定时间的方法和案例

  1. 直接指定具体时间和日期
at 2:30 PM

这个命令将安排任务在今天的下午2:30执行

  1. 使用特定日期
at 2:30 PM tomorrow

这个命令将在明天下午2:30执行

at 2:30 PM 05/20/2024

这个命令将在2024年5月20日下午2:30执行

  1. 使用相对时间
at now + 1 hour

在当前时间的一个小时后执行

at now + 2 days

两天后执行

  1. 使用特殊关键词
at midnight

今天午夜执行

at midnight next Sunday

在下一个星期天的午夜执行

  1. 混合使用
at 2:30 PM next Friday

在下一个星期五的下午2:30执行

at 2:30 PM Fri May 20 2024

在2024年5月20日的星期五下午2:30执行

实际操作

创建一个任务,1分钟后输入hello world到/root/at.txt文件

在这里插入图片描述
输入以下指令进入 at 视图

at now + 1 minutes

输入任务

echo "hello world" > /root/at.txt

键盘 按下 ctrl + D 结束输入

查看是否执行:

在这里插入图片描述

at命令的白名单和黑名单

为了安全起见,我们不能让任意用户都可以使用at命令,以防止主机被劫持或者被黑客利用,所以我们还需要对at命令进行管控。
主要通过两个文件:一个是 at.allow文件一个是at.deny;来实现对at命名使用的限制,在没有这两个文件之前,at命令的执行是在编辑好任务后直接等待atd服务的执行,但是在有这两个文件之后,at命令的执行就发生了改变,它首先要通过这两个文件进行用户的限制

注意

  • 一般假设系统中所有用户都是可信任的,故而系统中at.allow文件是默认不存在的
  • 而at.deny是默认存在且为空的,从而允许所有人都可以使用at命令。
    具体流程如下:
    在这里插入图片描述

案例

创建attest并添加至at.deny文件中并使用at命令

创建用户

useradd attest
在这里插入图片描述

将用户写到at.deny中

vim /etc/at.deny

在这里插入图片描述

切换用户并使用命令

su - attest

在这里插入图片描述
可见 attest用户无权限

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值