作业管理(任务计划)

任务计划就好比我们的闹钟一样,到了指定的时间就该去做对应的事情。

任务计划分为两类:

一次性的任务计划:只执行一次就结束

周期性的任务计划:每隔一定的周期去做相同的事情

at命令就是专门用来处理一次性的计划任务

batch也是处理一次性的计划任务但是它是由系统自行选择空闲时间去执行此处指定的任务(不常用)

crontab可以根据定义的周期信息,循环的去做一些事情

 

在使用此命令之前都要先安装相应的包,at和cronie,安装之后要启用相应的服务

at:

centos6:使用service atd start 启动

centos7:使用systemctl  start atd启动

crontab:

centos6:使用service crond start启动

centos7:使用systemctl restart crond.service启动

了解任务计划的相关信息之后我们来看下这些命令的具体使用:

at命令:

格式:at [option] TIME
常用选项:
-V 显示版本信息:
-l: 列出指定队列中等待运行的作业;相当于atq(查询)
-d: 删除指定的作业;相当于atrm(删除)
-c: 查看具体作业任务
-f /path/from/somefile:从指定的文件中读取任务
-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

TIME:定义出什么时候进行 at 这项任务的时间
HH:MM [YYYY-mm-dd]
noon, midnight, teatime(4pm)
tomorrow
now+#{minutes,hours,days, OR weeks}

执行at命令时会有多行输入,当输入完命令之后按Ctrl+d 提交退出

注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

如果是写在脚本中,最好是重定向至/dev/null

 

如果想取消任务计划,可先使用at -l 查看任务计划

然后使用at -d job_num取消

at计划任务默认保存在/var/spool/at中即使重启也能生效

如果不想让某些用户去创建任务,系统还给我们提供了相应的配置文件 黑名单和白名单

我们只需把用户名写入相应的名单中就给了他们不同的权限

白名单:/etc/at.allow

黑名单配置文件:/etc/at.deny

我们可以简单的理解为一个用户到底有没有创建任务的权限只需先看白名单,白名单里面有那就可以创建

也可以简单的说白名单优先级高于黑名单(个人理解如果有误请指出)

另外如果一个用户创建任务之后被放入了黑名单,那么任务是还会执行

 

接下来我们再来说说crontab

cron周期任务分为系统任务和普通用户任务,当然名字不同配置文件也不同

系统cron任务的配置文件:/etc/crontab

我们只需在此配置文件中按照格式写入即可

简单的把格式表示一下(每相邻两个之间用空格隔开)

分钟     小时      日期    月份    周几     用户名     命令

星号(*)表示 每……

离散取值
#,#,#
连续取值
#-#

 

普通用户计划任务

配置文件 /var/spool/cron/USERNAME

crontab 命令

格式   crontab [-u user] [-l | -r | -e] [-i]

-l: 列出所有任务
-e: 编辑任务
-r: 移除所有任务
-i:同-r一同使用,以交互式模式移除指定任务
-u user: 仅root可运行,指定用户管理cron任务

普通用户可以使用crontab -e创建计划任务但不能修改,如果要修改则还要执行crontab -e file

当然我们也可以设置黑名单和白名单配置文件是/etc/cron.{allow,deny}

此处我们不再赘述和上面一样

注意:运行结果的标准输出和错误以邮件通知给相关用户

 

工作中如果有时候马上就到任务执行的时候了却因为其他一些因素导致关机,出现故障等这时原定的计划任务没有执行怎么办?别担心系统中还有anacron系统来解决此类问题

我们打开/etc/anacrontab来看下(截取的只是最下面与我们相关的)

#period in days delay in minutes job-identifier command
1     5       cron.daily          nice run-parts      /etc/cron.daily
7     25     cron.weekly     nice run-parts      /etc/cron.weekly
@monthly 45    cron.monthly   nice run-parts     /etc/cron.monthly

第二行表示:一天之内没有被执行的任务将在开机五分钟后执行

下面两行想必你也明白了吧

 

以上是个人的理解,如果有错误请及时指出,谢谢!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97578

(0)
路在脚下路在脚下
上一篇 2018-05-05
下一篇 2018-05-06

相关推荐

  • Linux的哲学思想

    Linux的哲学思想: 1.一切皆文件 linux中所有的东西都可文件来描述,设备以文件形式描述,内核以及内核运行时变量都以虚拟文件的形式记录。因此必须有一套文件目录规范(FHS :Filesystem Hierarchy Standard文件层级标准http://refspecs.linuxfoundation.org/)来规定一些基本的目录,来保证不同的…

    Linux笔记 2018-05-11
  • 文件管理类命令和bash特性之(命令状态返回值和命令行展开)

    文件管理类命令 ls 用途:list 列出指定目录下的内容; 语法:ls [OPTION]… [FILE]… 选项:-a : 显示所有文件,包括隐藏文件;-A :显示除 . 和 .. 之外的所有文件;-l :长格式列表,显示文件的详细属性信息;-h :可以对文件大小进行单位换算是非精确值;-d:查看目录自身而非其内部文件列表(如果文件符合也会显示出来);-r…

    2018-05-19
  • 主从DNS acl问题

    问题:从DNS服务器acl 验证时未生效。

    Linux笔记 2018-07-12
  • Linux发行版的基础目录名称命名法则及功用规定

    对于linux来说,普天之下莫非王土,所有的文件必须从根开始。磁盘有多个分区,如何跟根建立关系?我们把磁盘上一个分区定义为根分区,那么其它分区被根分区奴役。其它分区挂载(关联)到根分区上。 所有linux命名必须遵守,FHS,:Filesystem Hieracchy standard.文件系统层级机构标准。定义根下必须有哪些目录,哪些可以没有,不同发行版所…

    2018-06-27
  • 第五周博客作业

    1、简述rpm与yum命令的常见选项,并举例
    2、自建yum仓库,分别为网络源和本地源
    3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
    4、简述sed常用操作命令,并举例

    2018-04-11
  • linux第五周

    RPM简介 RPM类似于Windows系统中.exe的软件安装程序,用户可以使用它自行安装和管理Linux上的应用程序和系统工具; RPM软件包文件都是以.rpm为后缀,一般采用这样的命名格式:软件包名称 – 版本号 – 修正版 . 硬件平台 . rpm。 RPM命令的使用方法 rpm命令:rpm [OPTIONS] [PACKAGE_FILE 安装:-i,…

    Linux笔记 2018-07-22