Linux 设置在某个时间执行某个任务一次(at 命令)

在使用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 .

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值