zoukankan      html  css  js  c++  java
  • Linux操作系统定时调度系统Cron介绍

    Linux操作系统定时调度系统Cron介绍

          cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下cron的具体使用及简单介绍。

    新增调度任务

          推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件),退出后重启crond进程,虽然官方文档描述为“crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。”,但我曾经遇到不重启无法运行任务的情况(也许因为某些系统crontab是读到内存中的,修改完/etc/crontab后并没有马上执行),可以使用如下方式重新启动cron服务或重新加载cron配置
          同样,我们也可以直接修改/etc/crontab文件来新建任务,/etc/crontab文件内容默认如下:
    注意
    • "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
    • /etc/cron.hourly/,/etc/cron.daily/、cron.weekly/、/cron.monthly/   存放着系统预先制定的cron任务
    /etc/crontab文件语法如下:
          Minute     Hour   Day    Month  Dayofweek      command
          分钟         小时     天        月         天每星期           命令
          每个字段代表的含义如下:
    •      Minute             每个小时的第几分钟执行该任务
    •      Hour               每天的第几个小时执行该任务
    •      Day                 每月的第几天执行该任务
    •      Month             每年的第几个月执行该任务
    •      DayOfWeek     每周的第几天执行该任务
    •      Command       指定要执行的程序
         在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
          同时,cron支持类似正则表达式的书写,支持如下几个特殊符号定义:
    •       "*"代表取值范围内的数字,
    •       "/"代表"每",
    •       "-"代表从某个数字到某个数字,
    •       ","分开几个离散的数字
     举例如下:
    5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令
    30     5       *           *     *     ls             指定每天的 5:30 执行ls命令
    30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
    50   7       *             *     *     root     run-parts     /etc/cron.daily   每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[注:run-parts参数表示,执行后面目录中的所有可执行文件,如果单独执行某个脚本的话,是不需要增加run-parts参数的。]

    服务管理
     

    命令选项

         -u指定一个用户,
         -l列出某个用户的任务计划
         -r删除某个用户的任务
         -e编辑某个用户的任务
        如:
     

    任务分类

    •      系统工作:系统周期性所要执行的工作,如备份系统数据、清理缓存,系统工作一般都定义在/etc/crontab文件中
    •      个人工作:某个用户定期要做的工作,如清理3天前的文件

    cron用户限制

          我们可以对不同用户设置限制,比如允许user1使用cron服务,而user2不允许使用cron服务;可以通过编辑如下两个文件实现这个策略:
    • /etc/cron.deny    被记录在此的用户不能使用cron任务
    • /etc/cron.allow   被记录在此的用户可以使用cron任务
         注意:如果两个文件都不存在,则默认所有用户均可以使用cron服务

    其它:

    • /var/spool/cron/   该目录下存放所有用户的cron服务
    • /var/log/cron   记录cron运行的日志信息
  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330200.html
Copyright © 2011-2022 走看看