要执行周期性任务,要保证服务运行。服务名为crond;service crond start ; systemctl start crond;

配置文件

/etc/crontab

cron的日志文件

cat /var/log/cron

一、简介

crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

二、任务调度的分类

Linux下的任务调度分为两类,系统任务调度用户任务调度

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

1.系统任务调度

通过编辑配置文件/etc/crontab,以下图的格式标明需要运行的时间即可。一行对应一个任务,格式如下图。

2.用户任务调度

在当前用户下使用命令crontab -e,会以当前用户的身份建立任务调度。与系统任务调度文件格式不同的是不需要指名以哪个用户的身份运行。

3.时间表示

  • 指定值:指定具体的数字
  • 范围值:* 表示每,每到这这个时间段执行一次任务。
  • 离散取值:10 2,3,4 * * *;每天的2,3,4点的10分执行一次。(总共执行了3次)
  • 连续范围: 10 2-10 * * *;每天的2点10分到10点10分分别执行(总共执行了8次)
  • 步长范围:*/3 * * * *;每分钟内执行3次(即每20秒执行一次)

    举例:

    10 10 */6 * *;每6天的10点10分执行一次任务
  • 日期与星期

    10 10 1-10 * 0,6 #每个月的1-10号的10点10分,或者周六日的10点10分都执行

    举例:

    1 1 */6 * * root echo "hello word " ;每隔6天的1点1分执行一次任务。

    1 1-10/3 * * * root echo “hello word”;在每天1-10点范围内每3小时内的第一分钟执行一次

4.创建周期性任务

crontab -e
* * * * * /bin/echo "`date +\%F \%H:\%M:\%S`"
#命令要写绝对路径。除非标明变量
#如果在用户下新建crontab的话%需要转义

5.创建时的其他设置

创建周期性任务时,默认的编辑器为vi所以没有语法高亮。可以通过以下办法将默认编辑器修改为vim

#写入/etc/porfile.d	对所有用户生效
#写入~/bash_profile 对当前用户
export EDITOP=vim

6.创建任务的权限

  • 允许指定用户创建任务

    cat /etc/cron.deny #在文件内写入用户名,使其不能创建新任务,但已创建的依然会执行
  • 拒绝指定用户创建任务

    cat /etc/cron.allow #默认文件不存在
  • 允许与拒绝优先级

    如果allow文件存在,那么deny文件不生效。

    如果allow为空,拒绝所有用户

    如果allow、deny都不存在,任何用户不能创建计划任务

7.实现毫秒、秒级别的周期性任务

  • 利用usleep实现微妙级别的运行

    usleep 1000000;1秒

    usleep 1000;1毫秒

    usleep 1;1微秒
  • 利用循环体加sleep实现秒级别的。在每分钟要执行的任务中sleep20秒。

cronatab周期性任务的更多相关文章

  1. 本地数据Store。Cookie,Session,Cache的理解。Timer类主要用于定时性、周期性任务 的触发。刷新Store,Panel

    本地数据Store var monthStore = Ext.create('Ext.data.Store', { storeId : 'monthStore', autoLoad : false, ...

  2. 【uTenux实验】时间管理(系统时间/周期性处理/警报处理)

    1.系统时间管理 系统时间管理函数用来对系统时间进行操作,是OS的一个基础性的东西.个人认为,设置系统时间和获取系统时间对OS来说基本是可有可无的. uTenux提供了三个系统时间相关API.分别用于 ...

  3. SAP 设置周期性的后台程序,SM36,图解操作 (转)

    SM36是设置SAP周期性运行的事务码 来测试一下,首先先写一个程序: 我有一个zzp_people2的数据表. DATA : INT1 TYPE I. DATA : ITAB LIKE ZZP_PE ...

  4. NSTimer实现读秒、倒计时等周期性操作

    self.timerSchedule = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(spin ...

  5. 使用java.util.Timer来周期性的执行制定的任务

    使用java.util.Timer来周期性的执行制定的任务 public class HandlerTest extends Activity { int[] images = new int[] { ...

  6. 定时且周期性的任务研究I--Timer

    很多时候我们希望任务可以定时的周期性的执行,在最初的JAVA工具类库中,通过Timer可以实现定时的周期性的需求,但是有一定的缺陷,例如:Timer是基于绝对时间的而非支持相对时间,因此Timer对系 ...

  7. 定时且周期性的任务研究II--ScheduledThreadPoolExecutor

    http://victorzhzh.iteye.com/blog/1011635 上一篇中我们看到了Timer的不足之处,本篇我们将围绕这些不足之处看看ScheduledThreadPoolExecu ...

  8. mac上使用crontab周期性执行python脚本

    这个月买了本书<Linux系统命令及Shell脚本实践指南>, 看到了一个周期性执行任务cron.顿时产生一个想法: mac上有这种机制么? 加上自己也在15年下半年也学了点python脚 ...

  9. linux周期性计划任务 进程管理

    周期性计划任务crontab命令系统服务:/etc/init.d/crond(crond必须启动才会生效)用户计划:/var/spool/cron/用户名默认的计划任务全局配置:/etc/cronta ...

随机推荐

  1. Struts2 (三)

    1 Struts2的拦截器 Struts2拦截器在访问某个Action方法之前或之后实施拦截,拦截器是可插拔的,拦截器是AOP的一种实现. Struts2拦截器栈:将拦截器按一定顺序联结成一条链,在访 ...

  2. 【转】国际GNSS服务组织IGS

    国际GNSS服务组织The International GNSS Service,简称IGS,前身为国际GPS服务组织.IGS提供的高质量数据和产品被用于地球科学研究等多个领域. IGS组织由卫星跟踪 ...

  3. Java NIO 之 Buffer

    Java NIO 之 Buffer Java NIO (Non Blocking IO 或者 New IO)是一种非阻塞IO的实现.NIO通过Channel.Buffer.Selector几个组件的协 ...

  4. [DeeplearningAI笔记]改善深层神经网络1.4_1.8深度学习实用层面_正则化Regularization与改善过拟合

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 正则化(regularization) 如果你的神经网络出现了过拟合(训练集与验证集得到的结果方差较大),最先想到的方法就是正则化(re ...

  5. mongodb备份恢复,数据导入导出

    数据导出 mongoexport 假设库里有一张apachelog表,里面有2 条记录,我们要将它导出 /test/mongodb/bin/mongo use wxdata switched to d ...

  6. Selenium_Java版本安装及初试

    [环境] ①JDK版本:jdk1.8.0_73 ②Eclipse:jee-mars-4.5.2 ③Selenium:selenium-java-3.5.3 ④GoogleChrome:60 ⑤chro ...

  7. open-falcon-agent插件使用

    说明 Plugin可以看做是对agent功能的扩充.使用插件可以对采集脚本进行统一管理,方便定制修改,也可以免去在crontab中添加计划任务. 开启plugin功能 # 修改agent配置文件 &q ...

  8. ES6 学习笔记之二 块作用域与闭包

    "闭包是函数和声明该函数的词法环境的组合." 这是MDN上对闭包的定义. <JavaScript高级程序设计>中则是这样定义的:闭包是指有权访问另一个函数作用域中的变量 ...

  9. python数据分析工具包(2)——Numpy(二)

    上一篇文章简单地介绍了numpy的一些基本数据类型,以及生成数组和矩阵的操作.下面我们来看一下矩阵的基本运算.在线性代数中,常见的矩阵运算包括,计算行列式.求逆矩阵.矩阵的秩等.下面我们来一一实现. ...

  10. srand()和rand()函数的使用

    rand()函数不接受参数,默认以1为种子(即起始值). 随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义.(但这样便于程序调试) srand()函数就是指明种子的大小:只 ...