【linux】循序渐进学运维-基础篇-at命令
2021/4/14 7:27:20
本文主要是介绍【linux】循序渐进学运维-基础篇-at命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1) 语法格式:
- 2) 查看是否安装
- 3) 常用参数
- 1) at实战举例
- a) 21:50 创建一个文件
- b) 三天后的下午5点执行touch /root/b.txt
- c) 明天下午5点,输出时间到指定文件内
- d) 查看第4个计划任务
- e) 删除一个计划任务
- 补充:
- 前言:
- 计划任务的分类:
- at命令的使用
- 总结:
大家好,我是互联网老辛,本文是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 +编号 |
是不是很简单,赶紧操练起来吧,我是互联网老辛,一个在教培行业不忘初心的人,欢迎点赞收藏,如果有问题也可以留言与我一起交流。我们下期再见!
这篇关于【linux】循序渐进学运维-基础篇-at命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南