• Crontab入门基础


    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

  • 相关阅读:
    解决docker 容器删除不掉的问题
    centos下安装docker
    Microsoft SQL Server 双机热备份,实时同步
    同一台主机下的两台虚拟机互ping不通
    JAVA基本数据类型
    记录一些比较高能的网站!
    Nginx+Lua+Redis配置
    用Squid3搭建缓存代理服务器
    Mysql导入CSV文件
    LeetCode--Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/it-taosir/p/9907737.html
Copyright © 2020-2023  润新知