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的更多相关文章

  1. linux备忘录-例行性工作排程 (crontab)

    例行性工作排程 例行性工作排程分为两类 at at是只执行一次就结束的指令安排.要想使用at,必须要有atd服务的支持. crontab crontab是每隔一段时间自动执行的指令安排.crontab ...

  2. Linux学习-什么是例行性工作排程

    那么 Linux 的例行性工作是如何进行排程的呢?所谓的排程就是将这些工作安排执行的流程之意! 咱们的 Linux 排程就是透过 crontab 与 at 这两个东西! Linux 工作排程的种类: ...

  3. 例行性工作排程 (crontab)

    1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式: ...

  4. 第十六章、例行性工作排程 (crontab)

    1. 什么是例行性工作排程 1.1 Linux 工作排程的种类: at, crontab 1.2 Linux 上常见的例行性工作 2. 仅运行一次的工作排程 2.1 atd 的启动与 at 运行的方式 ...

  5. linux例行性工作调度学习(一)

    Linux系统中有一种例行性工作(crontab)可以调度,是通过crontab和at来实现的. 这两种工作调度: 一种是例行性的,就是每隔一定的周期要来办的事项. 一种是突发性的,就是这次做完以后就 ...

  6. Linux学习-循环执行的例行性工作排程

    循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的. 另外, 由于使用者自己也可以进行例行性工 ...

  7. 浅谈 linux 例行性工作 crontab (linux定时任务)

    定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...

  8. 第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)

    循环执行的例行性工作调度 crontab(定时任务) 15.1 例行性工作调度 不考虑硬件与服务器的链接状态,Linux帮助提醒很多任务. Linux例行性工作是如何进行调度的? Linux调度就是通 ...

  9. 例行性工作排程 (crontab)

    说白了,就是一些例行工作的日常执行的排序程序 Linux  工作排程的种类:  at,cron 鸟叔说,atd并不是在所有版本都是开启的,但是centos7默认是开启的 [root@localhost ...

随机推荐

  1. 【tomcat系列】详解tomcat架构(上篇)

    java中,常用的web服务器一般由tomcat,weblogic,jetty,undertwo等,但从用户使用广泛度来说,tomcat用户量相对比较大一些,当然这也基于它开源和免费的特点. 从软件架 ...

  2. Python - 面向对象(一)入门篇

    Python里面有一句话:万物皆是对象 如何面向对象编程 设计类 创建类实例对象 实例对象调用方法 创建对象 在内存中为对象分配空间 调用初始化方法  __init__  为对象初始化 对象创建后,内 ...

  3. video.js 视频自动全屏播放

    1.头部引用脚本 <link href="css/video-js.min.css" rel="stylesheet"> <link href ...

  4. 一文讲清楚MySQL事务隔离级别和实现原理,开发人员必备知识点

    经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?本文就帮大家梳理一下. MySQL 事务 本文所说的 MySQL 事务都是指在 I ...

  5. [Bugku]Web题解

    bugku地址链接:https://ctf.bugku.com 1.web2 浏览器就显示一堆动态笑脸,时间长了密集恐惧症了. 解法1: F12查看源码 解法2: 地址栏输入: view-source ...

  6. 【简说Python WEB】Web应用部署

    目录 [简说Python WEB]Web应用部署 应用层 缓存层 数据层 Gunicorn 的应用 1.安装Gunicorn 2.Gunicorn的启动 Nginx 的应用 1.docker方式部署安 ...

  7. 记一次phpstudy应急响应

    某日,销售接了一个电话,突然告诉我有个某单位服务器中了木马被黑,具体情况未知.由于客户那边比较急,于是我火速赶往客户现场.到现场,客户首先给我看了深信服防火墙拦截记录,显示内网三台机器被入侵.通过沟通 ...

  8. rest_framework序列化,反序列化

    序列化组件 from rest_framework.response import Response1.Response本质也是继承了httpresponse,比httpResponse还强大,传入一 ...

  9. 第八周Java实验作业

    实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: 声明:  public interface 接口名 {...} 接口体中包含常量定义和方法定义 ...

  10. MySQL数据库参数调优方法

    怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据 ...