doc: update command/at.md

This commit is contained in:
jaywcjlove 2024-12-21 19:10:44 +08:00
parent 1f11d8a430
commit 2a181511e9
1 changed files with 30 additions and 11 deletions

View File

@ -5,17 +5,17 @@ at
## 补充说明 ## 补充说明
**at命令** 用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm小时:分钟式的时间指定。假如该时间已过去那么就放在第二天执行。当然也能够使用midnight深夜noon中午teatime饮茶时间一般是下午4点等比较模糊的 词语来指定时间。用户还能够采用12小时计时制即在时间后面加上AM上午或PM下午来说明是上午还是下午。 也能够指定命令执行的具体日期指定格式为month day 或mm/dd/yy月/日/年或dd.mm.yy日.月.年)。指定的日期必须跟在指定时间的后面。 **at命令** 用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm小时:分钟式的时间指定。假如该时间已过去那么就放在第二天执行。当然也能够使用midnight深夜noon中午teatime饮茶时间一般是下午4点等比较模糊的词语来指定时间。用户还能够采用12小时计时制即在时间后面加上AM上午或PM下午来说明是上午还是下午。也能够指定命令执行的具体日期指定格式为month day或mm/dd/yy月/日/年或dd.mm.yy日.月.年)。指定的日期必须跟在指定时间的后面。
上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:`now + count time-units`now就是当前时间time-units是时间单位这里能够是minutes分钟、hours小时、days、weeks星期。count是时间的数量究竟是几天还是几小时等等。 更有一种计时方法就是直接使用today今天、tomorrow明天来指定完成命令的时间。 上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:`now + count time-units`now就是当前时间time-units是时间单位这里能够是minutes分钟、hours小时、days、weeks星期。count是时间的数量究竟是几天还是几小时等等。更有一种计时方法就是直接使用today今天、tomorrow明天来指定完成命令的时间。
### 语法 ### 语法
```shell ```shell
at [-V] [-q 队列] [-f 文件] [-mldbv] 时间 at -c 作业 [作业...] at [-V] [-q 队列] [-f 文件] [-mldbv] 时间 at -c 作业 [作业...]
``` ```
### 选项 ### 选项
```shell ```shell
-f指定包含具体指令的任务文件 -f指定包含具体指令的任务文件
@ -25,13 +25,13 @@ at [-V] [-q 队列] [-f 文件] [-mldbv] 时间 at -c 作业 [作业...]
-m任务执行完成后向用户发送E-mail。 -m任务执行完成后向用户发送E-mail。
``` ```
### 参数 ### 参数
日期时间:指定任务执行的日期时间。 日期时间:指定任务执行的日期时间。
### ###
三天后的下午 5 点锺执行`/bin/ls` 三天后的下午 5 点钟执行`/bin/ls`
```shell ```shell
[root@localhost ~]# at 5pm+3 days [root@localhost ~]# at 5pm+3 days
@ -60,10 +60,6 @@ job 8 at 2013-01-06 17:20
删除已经设置的任务: 删除已经设置的任务:
```shell ```shell
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root
[root@localhost ~]# atrm 7 [root@localhost ~]# atrm 7
[root@localhost ~]# atq [root@localhost ~]# atq
8 2013-01-06 17:20 a root 8 2013-01-06 17:20 a root
@ -80,5 +76,28 @@ umask 22此处省略n个字符
date >/root/2013.log date >/root/2013.log
``` ```
使用任务文件执行任务:
```shell
[root@localhost ~]# echo "/bin/ls" > mytask.txt
[root@localhost ~]# at -f mytask.txt 5pm+3 days
job 9 at 2013-01-08 17:00
```
指定任务队列执行任务:
```shell
[root@localhost ~]# at -q b 5pm+3 days
at> /bin/ls
at> <EOT>
job 10 at 2013-01-08 17:00
```
任务执行完成后发送E-mail通知
```shell
[root@localhost ~]# at -m 5pm+3 days
at> /bin/ls
at> <EOT>
job 11 at 2013-01-08 17:00
```