【奇技淫巧】Linux | 时光之主-延迟执行at

本文介绍了Linux中的at命令,用于设置命令的延时执行。首先讲解了安装at命令的方法,然后详细阐述了如何创建、查看和管理延迟任务,包括指定时间、日期、时间间隔以及使用atq和atrm命令。最后提到了at命令适用于一次性任务,而crontab更适合周期性任务的执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


theme: condensed-night-purple

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

上文有讲到date命令,使用它我们可以查看当前时间,定制化时间的显示,以及修改系统时间。这篇文章我们要讲到延时执行命令at,我们可以使用这个命令设置一个命令延时执行的时间。

一、环境准备

不是所有的Linux发行版都支持使用at命令。

如果你使用的是Ubuntu,请使用以下的命令行安装此命令。

$sudo apt install at

如果你使用的是Centos,请使用以下的命令行安装此命令。

```

反查所需的依赖包,获取at的版本

$yum provides at ​

安装

$yum install -y ​ ```

检查是否安装可正常使用!

at 14:30

控制台输出结果为:

1.png

终端上有一个warning的提示,意思是让你提供要在14:30要执行的命令,这就表示at命令安装成功了。

二、使用

2.1 基础使用

入门

如果我们想要在指定时间创建文件,可以按照图示的方法输入创建文件的命令。

2.png

现在延迟执行的命令已经输入完成,需要退出并保存设置,可以使用crtl+D组合键完成退出,首先会显示EOF,这个缩写代表End Of Transmission(传输结束),退出完成,终端会输出以下图示内容。

3.png 内容表达的含义如下:

  • job - 表示创建了一个任务
  • 3 - 表示第3号任务
  • at - 表示“在...时刻”
  • Sat Sep 25 14:32:00 2021 - 表示命令具体执行的时间,精确到秒

时间到了约定的时间,就会去执行具体的命令。检查文件目录,的确成功执行。

4.png

完整用法

明天14:32执行命令

$ at 14:32 tomorrow

2021年9月27日14:32执行命令

$ at 14:32 09/27/2021

时间间隔后执行

除了指定时刻,还能指定时间间隔后执行。

```

30分钟后执行命令

$ at now +30 minutes ```

间隔时间单位包含 minutes hours days weeks months years

2.2 管理查看功能

延迟命令执行后,它就会成为一个任务,等待设置的时间一到就执行,那么如何管理查看这些延时任务呢?

很简单,每次设置延迟执行的命令后,会得到一个job编号,我们基于这个编号可以管理这些任务。

atq命令

atq命令可列出正等待执行的at延迟任务,q表示英语单词queue,即队列,表示列出at命令的任务队列,使用方法如图所示。

5.png

atrm

atrm命令可删除正在等待执行的at延迟任务,rm表示英语单词remove,命令后接job编号,使用方法如图所示。

6.png

图上延迟执行的任务被删除,因此就不会再被执行了。

三、扩展

通过上面的使用,at命令确实达到了延迟执行命令的效果,但是需要注意的是,at命令只能让需要延迟执行的程序只执行一次,如果要达到定时重复执行的效果,请使用另一个强大的命令crontab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值