Linux at命令详解
at
命令就是为这个需求而诞生的。使用 at
命令,你可以在特定时间自动完成你所设定的任务,也可以实现自动化,非常方便快捷!安装 at 命令
at
命令,不确定的话可以使用 at -V
命令查看,如果有版本返回,说明就可以正常使用 at
命令。$ at -V
at version 3.1.13
atd
。在大多数 Linux 系统上,你可以使用 systemctl
命令启用 atd
服务并将它们设置为从现在开始自动启动:$ sudo systemctl enable --now atd
at 命令基本用法
语法
at [选项] [日期时间]
选项
-f:指定包含具体指令的任务文件
-q:指定新任务的队列名称
-l:显示待执行任务的列表
-d:删除指定的待执行任务
-m:任务执行完成后向用户发送 E-mail
参数
日期时间:指定任务执行的日期时间
使用 at 命令交互性安排任务
at
命令,然后再跟上具体的时间。at-test.txt
文档里写入 hello world
这句话,可以这样交互性输入:$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021
at
命令使用直观和自然的时间格式。你不需要知道 24 小时制或将时间转换为 UTC 格式。通常,可以直接使用我们生活中常用的单词它就能理解,例如noon、 1:30 PM、 13:37等。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
at
命令有效表达式的示例:$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ 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
命令。往期精选
杭州程序员从互联网跳央企,晒一天工作和收入,网友:待一年就废
知乎34W+,能跑的代码就不能动?!正要动,就被人打了...
聊了聊宏内核和微内核,并吹了一波 Linux
人人都写过的5个Bug!
“上帝的操作系统” Shrine!既不是 Windows,也不是 Linux
为什么国内 996 干不过国外的 955呢?
又一届中国数据库技术大会(DTCC),在料峭秋寒中开始
Linux 命令 su 和 sudo 的区别
相关文章