【Linux】 at命令详解

目录

一、安装 at 命令

二、at 命令基本用法

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

 使用 at 命令安排任务

查看 at 任务队列


使用 at 命令,你可以在特定时间自动完成你所 设定的任务,也可以实现自动化,非常方便快捷!

一、安装 at 命令

使用下面的命令安装:yum install at -y

安装成功后使用 systemctl 命令启用 atd 服务并将它们设置为从现:systemctl start atd

再开始自动启动: systemctl enable --now atd

二、at 命令基本用法

语法:   at [选项] [日期时间]

选项:

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

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

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

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

-m:任务执行完成后向用户发送 E-mail 参数 日期时间:指定任务执行的日期时间

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

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


例如:

你想在早上 11:07 的时候,在 1.txt 文档里写入 123 这句 话,可以这样交互性输入:

d2feacd6ea0749ae8b9bb5be96d25afe.png

 输入完所要执行的任务后按回车,再按Ctrl+d 就表示结束输入,等时间一到,用cat命令查看:

4149b6e56507448eb8d648bb159b0591.png


可能出现的问题:

47ed66a5f93944c587cb3e607be5e7d8.png

 原因:服务没有启动

解决方法: 

systemctl restart atd #使用该命令启动服务

就成功啦:

dfd5a97682574c268d3e21ba85cf766a.png

 使用 at 命令安排任务

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

比如,我想从现在开始一分钟后向 家目录下的1.txt 文件写入 hello again 语句:

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

1fcd0aad8f084d8dab790fdcfcca26a0.png

查看结果:

0fd96b24277b43d2b64f7727a44ce2be.png

查看 at 任务队列

随时间的推移,我们可能忘记在 at 命令队列时设置了多少个任务,如果你想进行 查看,可以使用 atq 命令,也可以使用at -l命令:

a67b8c15a3cc4075b4ee79616fb7cd55.png

 要从队列中删除任务,请使用 atrm 命令和任务编号。例如要删除任务 11 :

7667819fa2754785abccc3d9e3de3966.png

显示已经设置的任务内容,请使用at -c参数加任务id号查看;

380f04795f8248388e1b38790fac0887.png