作业管理(任务计划)

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

任务计划分为两类:

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

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

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 20:24
下一篇 2018-05-06 09:34

相关推荐

  • 用 percona-xtrabackup 实现备份实例

    安装2.4.11版本的percona wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.11/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm 下载新版的percona 看下后…

    Linux笔记 2018-06-14
  • ssh等

    SSH端口转发 SSH会自动的加密和解密所有SSH客户端与服务器之间的网络数据;同时也可以将其他TCP端口的数据加密转发,这一过程叫“隧道”,这样也可以减少防火墙开启的端口。 实现过程是数据首先通过连接本机的某一个端口,被当做ssh协议数据发送给ssh服务器,ssh服务器解密再发给远程主机的端口 本地转发: -L localport:remotehost:r…

    2018-05-28
  • 第五周 软件包管理命令、制定定时任务和sed命令介绍

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

    2018-07-02
  • 正则表达式、linux文件处理三剑客:grep、sed、awk

    基本的正则表达式元字符:默认工作于贪婪模式; 字符匹配: .:匹配任意单个字符; []:匹配指定范围内的任意单个字符; [^]:匹配范围外的任意单个字符; [:digit:]数字、[:lower:]小写字母、[:upper:]大写字母、[:alpha:]所有字母、[:space:]空白符、[:alnum:]字母数字、[:punct:]标点符号 匹配次数: *…

    Linux笔记 2018-03-28