Linux系统的闹钟:at命令

在学习生活中我们离不开闹钟的功能,比如起床、开会、追剧等等。手机上的闹钟对于我们来说一点也不陌生了,那么在Linux系统里,假如我们也有这样的需求,但我们又不可能一直守在系统前,而且到点还需要人工操作,未免有点low了。

at命令就可以当作闹钟来使用,你可以在特定时间自动完成你所设定的任务,非常方便快捷!

首先需要有at命令

一般大部分的Linux发行版都已经安装了at命令,我们可以使用at -V命令查看,如果有版本信息,说明可以正常使用。

$ at -V 

at version 3.1.13 

启动at守护进程atd,使用systemctl命令启用atd服务并设置为自动启动:

$ sudo systemctl enable --now atd

at命令基本用法

语法:

at [选项] [参数]

选项:

-f:指定包含具体指令的任务文件 

-q:指定新任务的队列名称 

-l:显示待执行任务的列表 

-d:删除指定的待执行任务 

-m:任务执行完成后向用户发送 E-mail

参数:

日期时间:指定任务执行的日期时间

使用 at 命令交互性安排任务

平时大家是怎么使用闹钟的呢?首先点击闹钟软件上的加号,然后再设定时间,再在备注里输入闹钟的目的。

使用at命令交互性安排任务也是一样的。

首先你输入at命令,然后再跟上具体的时间。回车之后就进入到交互性界面,再具体输入要做的事情(命令),最后以结束输入,任务就设置好了。

例如,我们想在上午 11:30 的时候,在at-test.txt文档里写入hello world这句话,可以这样交互性输入:

$ at 11:30 AM 

warning: commands will be executed using /bin/sh 

at> echo "hello world" > ~/at-test.txt 

at> <EOT> 

job 3 at Wed Nov 3 11:30:00 2021 

如上所示,at命令使用直观和自然的时间格式。你不需要知道24小时制或将时间转换为UTC格式。通常可以直接使用我们生活中常用的单词它就能理解,例如:noon、 1:30 PM、 13:37等。

在11:30过后,使用cat命令查看at-test.txt文件是否有内容写入:

$ cat ~/at-test.txt 

hello world

使用at命令安排任务

如果不想使用at命令交互的方式来安排任务,也可以使用管道将echo或printf的值传递给at命令。

例如,一分钟后向at-test.txt文件写入hello again语句:

$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute 

一分钟后,我们再验证新命令是否已执行:

$ cat ~/at-test.txt 

hello world

hello again

at命令使用我们日常生活中所使用的时间格式,非常方便:

YYMMDDhhmm[.ss] (缩写年、月、日、小时、分钟[秒])

CCYYMMDDhhmm[.ss] (完整年、月、日、小时、分钟和[秒])

now

midnight

noon

teatime`(下午4点)

AM

PM

时间和日期可以是绝对,也可以添加一个加号 ( + ) 相对于现在。在指定相对时间时,下面这些日常生活中所使用的词汇都可以使用:

minutes

hours

days

weeks

months

years

举几个例子:

$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022 

$ echo "echo hello" | at now + 3 days

查看at任务队列

有些时候可能会忘记at命令队列设置了多少个任务,如果想查看,可以使用atq命令:

$ atq 

10 Thu Jul 29 12:19:00 2021 a tux

9  Tue Jul 27 03:30:00 2021 a tux

7  Tue Jul 27 00:00:00 2021 a tux

要从队列中删除任务,使用atrm命令和任务编号

例如要删除任务7:

$ atrm 7

$ atq

10 Thu Jul 29 12:19:00 2021 a tux

9  Tue Jul 27 03:30:00 2021 a tux

如果想要查看计划任务中的具体内容,就必须查看 at spool。只有root用户才能查看at spool,因此你必须使用sudo来查看spool或cat任务的内容。

at命令是避免忘记在将来特定时间的任务或在你离开时让计算机为你运行任务的非常好的方式。与cron命令不一样的是,它不需要使任务从现在一直循环运行,它的语法比cron简单得多。

小伙伴们想在下班后让系统为你做个工作,可以试试at命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值