Linux管理,例行性工作,at和cron
at
仅执行一次就结束调度(服务atd必须启动)
at的配置信息
1.我们设定的at进程其实都是被以文本的方式写入到/var/spool/at/目录内,然后这些设定的进程便会等待atd服务来启动这些进程了
2.并不是所有的人都可以使用at命令,具体的规则由/etc/at.allow与/etc/at.deny这两个文件指定(一般系统只有其中一个文件)
(1)被at.allow记录的用户有权限使用at命令
(2)被at.deny记录的用户没有权限使用at命令
(3)若没有其中任何一个文件,则只有root用户可以使用at命令
步骤:
1.安装atd服务
因为很多发行版本并没有安装atd服务,所以需要我们自己安装。(我的ubuntu 18.04LTS就没有安装)
sudo apt install at
2.启动/重启atd服务
方法一:
service atd restart
或者
service atd start
方法二:
/etc/init.d/atd restart
注意:
前者是根据环境变量启动服务,后者是根据可执行文件所在路径启动服务
3.at使用方法
(1)参数:
-m ===> 在at完成之后,即使没有输出信息,以email的方式通知用户该工作已经完成
-l ===> 列出系统上所有的at调度
-d ===> 取消指定的at调度工作
-v ===> 直观的列出at调度工作
-c ===> 可以列出后面接的该项工作的实际命令内容
(2)时间格式
HH:MM ===> 在今天的这个时刻执行工作,若已超时则推迟到明天
HH:MM YYYY-MM-DD ===> 强制在指定的时间执行此工作
HH:MM + number [minutes|hours|days|weeks] ===> 在某个时间点(HH:MM)在加上一段时间(number x m/h/d/w)后执行该工作
(3)示例
在一分钟之后将系统时间写入到当前目录下的info.txt文件当中
这是工作运行前info.txt的内容

开始设定工作
at now + 1 minutes
然后在提示符下输入命令,注意输入结束后以 ctrl + d 结束输入

一分钟以后,我们查看info.txt中的内容

可以看到,完美执行
那么我们设定的这些工作如果忘了应该怎么样查看呢?
可以通过
at -l
查看全部工作,然后再通过
at -c jobID
查看特定工作的内容

如果发现自己设定的at工作错误或者不合适了,如何将它删除掉呢?
(1)查找工作
atq 或者 at -l
(2)删除
atrm [jobnumber]
注意:很多时候我们测试的时候会让该工作在终端输出一些信息,但是到了那个时间点之后却没有输出,这是因为at命令的执行环境与终端无关,这些标准输出都会输出到执行者的mailbox去,所以并不会在终端机看到这些标准输出信息。这时候有两种解决方案:
1.强制输出到终端机
ls -al > /dev/tty1
2.执行者自行到mailbox中去查看

很多情况下,如果我们的电脑特别忙碌的时候,还要在指定时间完成指定的工作,这样会有点不合适甚至会出现不好的后果,因此便出现了batch命令
batch命令用法和功能与at一致,唯一的不同点就是batch设定的工作,只会在cpu负载率小于0.8时才会执行,这个机制一定程度上保证了系统的稳定运行。
cron
cron所设置的工作将会一直循环下去。可循环的时间为分钟、小时、周、月、年等。
它除了可以用命令执行外,也可以编辑/etc/crontab来执行(服务crond必须启动)
cron的配置信息
1.我们设定的crontab进程其实都是被以文本的方式写入到/var/spool/cron/目录内,然后这些设定的进程便会等待atd服务来启动这些进程了
2.并不是所有的人都可以使用at命令,具体的规则由/etc/cron.allow与/etc/cron.deny这两个文件指定(一般系统只有其中一个文件)
(1)被cron.allow记录的用户有权限使用crontab命令
(2)被cron.deny记录的用户没有权限使用crontab命令
(3)每一个执行的corn工作都会被记录到/var/log/cron日志文件中
crontab的使用方法
1.参数
-u ===> 只有root用户才能进行这个任务。即帮助其他用户新建删除crontab工作调度
-e ===> 编辑crontab的工作内容
-l ===> 查阅crontab的工作内容
-r ===> 删除所有的crontab的工作内容
2.使用方法
注意:
(1).每个任务都是/var/spool/cron/username其中的一行
(2).每个任务都有六个字段
| 代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
| 取值范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | command |
(3).在设定任务的时候,还可以用一些特殊字符
| 特殊字符 | 代表意义 |
| *(星号) | 代表任何时刻都接受(假如日周月都是*,则代表不论几月几日星期几都会执行) |
| ,(逗号) | 多个时刻点都执行,用逗号分隔开 |
| -(减号) | 指定时间段内都执行 |
| /number(斜线加数字) | 每隔n单位间隔 |
3.具体使用步骤
(1)crontab -e
(2)进行编辑
(3)crontab -l查看


可以看到,我们设定的程序完美执行了!
4.针对系统的例行性工作
需要注意的是,上面我们提到的都是针对当前用户的例行性工作,那么如何设置针对整个系统的例行性工作呢?
非常简单,只需直接编辑这个文件即可 ===> /etc/crontab
我们来查看一下系统的例行性工作有哪些

上面有一些陌生的字段,我们来一一说明:
MAILTO=root
如果有标准输出和标准错误输出时,会将这些信息传输给设置好的用户(默认是root)
PATH=......
可执行文件的查找路径
dow user
执行命令的身份
Linux管理,例行性工作,at和cron的更多相关文章
- linux备忘录-例行性工作排程 (crontab)
例行性工作排程 例行性工作排程分为两类 at at是只执行一次就结束的指令安排.要想使用at,必须要有atd服务的支持. crontab crontab是每隔一段时间自动执行的指令安排.crontab ...
- Linux学习-什么是例行性工作排程
那么 Linux 的例行性工作是如何进行排程的呢?所谓的排程就是将这些工作安排执行的流程之意! 咱们的 Linux 排程就是透过 crontab 与 at 这两个东西! Linux 工作排程的种类: ...
- 例行性工作排程 (crontab)
1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式: ...
- 第十六章、例行性工作排程 (crontab)
1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作 2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式 ...
- linux例行性工作调度学习(一)
Linux系统中有一种例行性工作(crontab)可以调度,是通过crontab和at来实现的. 这两种工作调度: 一种是例行性的,就是每隔一定的周期要来办的事项. 一种是突发性的,就是这次做完以后就 ...
- Linux学习-循环执行的例行性工作排程
循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的. 另外, 由于使用者自己也可以进行例行性工 ...
- 浅谈 linux 例行性工作 crontab (linux定时任务)
定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...
- 第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)
循环执行的例行性工作调度 crontab(定时任务) 15.1 例行性工作调度 不考虑硬件与服务器的链接状态,Linux帮助提醒很多任务. Linux例行性工作是如何进行调度的? Linux调度就是通 ...
- 例行性工作排程 (crontab)
说白了,就是一些例行工作的日常执行的排序程序 Linux 工作排程的种类: at,cron 鸟叔说,atd并不是在所有版本都是开启的,但是centos7默认是开启的 [root@localhost ...
随机推荐
- React利用Antd的Form组件实现表单功能(转载)
一.构造组件 1.表单一定会包含表单域,表单域可以是输入控件,标准表单域,标签,下拉菜单,文本域等. 这里先引用了封装的表单域 <Form.Item /> 2.使用Form.create处 ...
- mysql锁机制和事务隔离
mysql事务 1.InnoDB事务原理 事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致性状态转换为另一种一致性状态. 在数据库提交时,可以确保要么所有修 ...
- Linux常用命令 - wget命令详解(重点)
21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 下载i ...
- ECharts的使用与总结
ECharts的使用与总结 一,介绍与需求 1.1,介绍 ECharts商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9 ...
- 2. Plugin execution not covered by lifecycle configuration
问题: 找到当前项目的工作空间下的.metadata\.plugins\org.eclipse.m2e.core路径, 然后添加lifecycle-mapping-metadata.xml文件,内容如 ...
- 什么是Hibernate
Hibernate是一个基于JDBC的主流持久性框架,是一个优秀的ORM(object relation mapping)(对象关系映射)实现 ORM就是通过java对象映射到数据库表中,通过操作ja ...
- python 顺序读取文件夹下面的文件(自定义排序方式)
我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...
- hdu3695 AC自动机优化
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3695/ 不加last指针的AC自动机会T,原因是他费了很多功夫在跳转上,而last指针是直接直到跳转的终止位置, ...
- python爬取中国大学排名
教程来自:[Python网络爬虫与信息提取].MOOC. 北京理工大学 目标:爬取最好大学网前50名大学 代码如下: import requests from bs4 import Beautiful ...
- 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...