Crontab入门基础

crontab前言

crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是要求你的调度程序比较可靠,实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通过crond这个工业级程序去调度就行了,crond的可靠性,健壮性,大家应该是毫无疑问的。

crontab的语法

crontab [-u username] [-l|-e|-r]
选项与参数:
-u :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑
crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
# 分 时 日 月 周 |<==============任务的完整命令行
* * * * *

crontab的原理

当使用者使用 crontab 这个命令来创建工作排程之后,该项工作就会被纪录到 /var/spool/cron/ 里面去了,而且是以帐号来作为判别的喔!举例来说, blue 使用 crontab 后, 他的工作会被纪录到 /var/spool/cron/blue 里头去!但请注意,不要使用 vi 直接编辑该文件, 因为可能由于输入语法错误,会导致无法运行 cron 喔!另外, cron 运行的每一项工作都会被纪录到 /var/log/cron 这个登录档中,所以罗,如果你的 Linux 不知道有否被植入木马时,也可以搜寻一下 /var/log/cron 这个登录档呢!

crond服务的最低侦测限制是『分钟』,所以『 cron 会每分钟去读取一次 /etc/crontab 与 /var/spool/cron 里面的数据内容 』,因此,只要你编辑完 /etc/crontab 这个文件,并且将他储存之后,那么 cron 的配置就自动的会来运行了!

备注:在 Linux 底下的 crontab 会自动的帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项,但是某些原因或者是其他的 Unix 系统中,由於 crontab 是读到内存当中的,所以在你修改完 /etc/crontab 之后,可能并不会马上运行, 这个时候请重新启动 cron 这个服务吧!『/etc/init.d/cron restart』

crontab的格式详解

每项工作 (每行) 的格式都是具有六个栏位,这六个栏位的意义为:

代表意义 分钟 小时 日期 月份 命令
数字范围 0-59 0-23 1-31 1-12 0-7 就命令啊

比较有趣的是那个『周』喔!周的数字为 0 或 7 时,都代表『星期天』的意思!另外, 还有一些辅助的字符,大概有底下这些:

特殊字符 代表意义
*(星号) 代表任何时刻都接受的意思!举例来说,如果日、月、周都是 * , 就代表著『不论何月、何日的礼拜几都运行后续命令』的意思!
,(逗号) 代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是:

0 3,6 * * * command

时间参数还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!

-(减号) 代表一段时间范围内,举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工作:

20 8-12 * * * command

仔细看到第二栏变成 8-12 喔!代表 8,9,10,11,12 都适用的意思!

/n(斜线) 那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则:

*/5 * * * * command

很简单吧!用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!

摘选于 https://www.cnblogs.com/liwei0526vip/p/4873104.html

Crontab入门基础的更多相关文章

  1. mybatis入门基础(二)----原始dao的开发和mapper代理开发

    承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...

  2. 01shell入门基础

    01shell入门基础 为什么学习和使用shell编程 shell是一种脚本语言,脚本语言是相对于编译语言而言的.脚本语言不需要编译,由解释器读取程序并且执行其中的语句,而编译语言需要编译成可执行代码 ...

  3. Markdown入门基础

    // Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...

  4. JavaScript入门基础

    JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...

  5. C++ STL编程轻松入门基础

    C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...

  6. HTML入门基础教程相关知识

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

  7. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  8. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  9. AngularJS入门基础PPT(附下载链接)

    学习了Angularjs有段时间,自己写了一个PPT,个人认为总结的非常全面,对于入门基础够了. 大致模块有:Angularjs简单介绍,Angularjs特性,hello world,Control ...

随机推荐

  1. tf.truncated_normal和tf.random_normal使用方法的区别

    1.tf.truncated_normal使用方法 tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=No ...

  2. TOMCAT-IDEA远程debug方法

    在很多情况下,tomcat本地启动并不足以完全模拟线上环境,所以,有时候我们可能需要远程debug方法去调试,下面附上远程idea debug方法: IDEA中,选择 Run/Debug Config ...

  3. Hadoop集群(第13期)_HBase 常用Shell命令

    进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之 ...

  4. D - Constructing Roads

    D - Constructing Roads 思路:并查集板子 #include<cstdio> #include<cstring> #include<iostream& ...

  5. hive join 优化 --小表join大表

    1.小.大表 join 在小表和大表进行join时,将小表放在前边,效率会高.hive会将小表进行缓存. 2.mapjoin 使用mapjoin将小表放入内存,在map端和大表逐一匹配.从而省去red ...

  6. java删除文件夹及子目录

    package test; import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; ...

  7. hdoj--1201--18岁生日(模拟)

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. poj--3169--Layout(简单差分约束)

    Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9098   Accepted: 4347 Descriptio ...

  9. lightoj--1294--Positive Negative Sign(水题,规律)

    Positive Negative Sign Time Limit: 2000MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu ...

  10. js闭包概念

    含义:闭包是一个概念,它描述了函数执行完毕内存释放后,依然内存驻留的一个现象,只要把握这个核心概念,闭包就不难理解了 function a(){      var i=0;      function ...