在使用Linux系统的过程中, 有个时候我们希望在某一个特定的时间执行一个命令和任务,这时,我们需要用到命令:at 这个命令可以实现这个功能。
1.安装atd服务。
在有些系统中,是没有安装 at 这个命令的,因此我们需要手动安装。
$ sudo yum install at
显示如下:
确认安装就可以了。
2.启动atd服务。
输入命令:
$sudo systemctl enable atd
$sudo systemctl start atd
$sudo systemctl status atd
如图:
如果和上面显示一样,就证明你成功了。
3.使用atd服务来使用定点任务。
比如:在下一分钟关机。输入如下指令:
# at now + 1 minute
at>shutdown now
ctrl +d
执行如下:
然后在一分钟之后就关机了。
比如在16:05在当前目录创建一个1.txt的文件,并且其中的内容为,(Yes I do this)。
输入命令:
# at 16:05
at > echo "Yes, I do this " >> 1.txt
ctrl +d
执行如下:
如果,我们想要查看at中有多少个任务
输入指令:atq 就可以查看有多少个任务了
$atq
第一行:任务的编号。
第二行:任务执行的时间。
第三行:是那个用户的任务。
从中,我们知道一次性任务有1条,它将会在16:05:00执行。
具体执行什么命令呢?输入指令查看。
输入命令:at -c 15 查看这个任务的命令
at -c 15
显示如下:
如果我们取消一个任务怎么办?
输入命令: at 16:09
at>echo "Hello world"
ctrl+d 创建一个任务。
$at 16:09
at>echo "Hello world"
ctrl+d
输入命令: atq 显示任务。
$ atq
输入命令: atrm 16 取消15号命令。
$atrm 16
如果我们有一个这样的任务,在16:15 的时候输出一个Hello World在屏幕上?
输入命令:
$at 16:15
at > echo "Hello world"
ctrl +d
显示如下;
可是到了这个点的时候并没有输出"Hello World“这个字符串,为什么?
因为这些消息全部输出到/var/spool/mail/username和/var/mail/username这些日志文件里去了。
我们使用命令查看一下:
输入命令:cat /var/spool/mail/windstorm/
$cat /var/spool/mail/windstorm/
显示如下:
再查看一下/var/mail/windstorm这个文件。
从中我们看到了Hello World .