ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【linux】循序渐进学运维-基础篇-at命令

2021-04-13 23:51:41  阅读:179  来源: 互联网

标签:学运 00 zmgaosh 17 任务 2020 循序渐进 linux root



文章目录


大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-基础篇的第52篇文章。


前言:

今天我们一起聊聊关于计划任务当中的一个命令:at

大家都比较熟悉crontab计划任务,对at命令可能稍微有些模式。 crontab一般指的是周期性的计划任务。 但是我们在生活中也有一些任务是单次执行的,比如20分钟之后要重启,2分钟之后执行一个脚本

at适合用在应对临时性和突发性的任务上。

计划任务的分类:

计划任务的安排方式分两种:
一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情
一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务

用命令来描述就是at和crontab这两个命令:
at:它是一个可以处理仅执行一次就结束的指令
crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去

at命令的使用

1) 语法格式:

at + 时间

2) 查看是否安装

at的服务是atd

[root@xinsz08-15 ~]# chkconfig --list |grep atdatd             0:关闭  1:关闭  2:关闭  3:启用  4:启用  5:启用  6:关闭

可以查看到正在运行

[root@xinsz08-15 ~]# service atd statusatd (pid  2635) 正在运行...[root@xinsz08-15 ~]#

3) 常用参数
选项作用
f指定包含具体指令的任务文件
q指定新任务的队列名称
l显示待执行任务的列表
d删除指定的待执行任务
m执行完毕后向用户发送邮件
1) at实战举例
a) 21:50 创建一个文件
[root@zmgaosh ~]# at 21:50at> mkdir /root/2150
at> <EOT>  (这里按的是ctrl +D )
job 2 at Mon Jun 29 21:50:00 2020

查看计划任务的两种方式:

方法一: at -l

[root@zmgaosh ~]# at -l   2       Mon Jun 29 21:50:00 2020 a root[root@zmgaosh ~]#

方法二: atq

[root@zmgaosh ~]# atq2       Mon Jun 29 21:50:00 2020 a root[root@zmgaosh ~]#

b) 三天后的下午5点执行touch /root/b.txt
[root@zmgaosh ~]# at 5pm+3 daysat> /bin/touch /root/b.txt
at> <EOT>job 3 at Thu Jul  2 17:00:00 2020

c) 明天下午5点,输出时间到指定文件内
[root@zmgaosh ~]# at 17:00 tomorrowat> date >/root/17.txt
at> <EOT>job 4 at Tue Jun 30 17:00:00 2020

d) 查看第4个计划任务

方法一:

[root@zmgaosh ~]# at -l   查看现有的任务2       Mon Jun 29 21:50:00 2020 a root
4       Tue Jun 30 17:00:00 2020 a root
3       Thu Jul  2 17:00:00 2020 a root[root@zmgaosh ~]# at -c 4   #查看第四个任务的具体内容#!/bin/sh# atrun uid=0 gid=0# mail root 0umask 22
XDG_SESSION_ID=307; export XDG_SESSION_ID
HOSTNAME=zmgaosh; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=10000; export HISTSIZE
SSH_CLIENT=120.244.154.174\ 3724\ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/0; export SSH_TTY
USER=root; export (.....省略一大堆内容)cd /root || { echo 'Execution directory inaccessible' >&2         exit 1}${SHELL:-/bin/sh} << 'marcinDELIMITER3f0ead97'
date >/root/17.txt

marcinDELIMITER3f0ead97

可以看到,最后执行的是 data > root/17.txt

方法二:

[root@zmgaosh ~]# ls /var/spool/ata0000201953b7e  a0000301954b3c  a0000401953ffc  spool[root@zmgaosh ~]# tail -5 /var/spool/at/a0000401953ffc }${SHELL:-/bin/sh} << 'marcinDELIMITER3f0ead97'
date >/root/17.txt

marcinDELIMITER3f0ead97[root@zmgaosh ~]#

也可以看到 date >/root/17.txt

以上两个方法都可以

e) 删除一个计划任务

使用命令atrm
方法: atrm + 任务编号

[root@zmgaosh ~]# at -l2       Mon Jun 29 21:50:00 2020 a root
4       Tue Jun 30 17:00:00 2020 a root
3       Thu Jul  2 17:00:00 2020 a root[root@zmgaosh ~]# atrm 4[root@zmgaosh ~]# at -l2       Mon Jun 29 21:50:00 2020 a root
3       Thu Jul  2 17:00:00 2020 a root[root@zmgaosh ~]#

补充:

还记得 a) 里面我们设置的21:50创建文件吗,写到现在正好21:50,我们来查看结果:

[root@zmgaosh ~]# ll总用量 12
drwxr-xr-x 2 root root 4096 6月  29 21:50 2150

我们再来看看这个计划任务执行完之后,现存的计划任务还有几个:

[root@zmgaosh ~]# atq3       Thu Jul  2 17:00:00 2020 a root[root@zmgaosh ~]# at -l3       Thu Jul  2 17:00:00 2020 a root[root@zmgaosh ~]#

可以看到还剩一个,因为有一个我们使用atrm +编号给删除了。

总结:

我们来总结下今天的内容:

作用命令
定制计划任务:at + 时间
查看计划任务:atq && at -l
查看具体某一个的计划任务:at -c +编号
删除计划任务atrm +编号

是不是很简单,赶紧操练起来吧,我是互联网老辛,一个在教培行业不忘初心的人,欢迎点赞收藏,如果有问题也可以留言与我一起交流。我们下期再见!

标签:学运,00,zmgaosh,17,任务,2020,循序渐进,linux,root
来源: https://blog.51cto.com/xinsz08/2704528

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有