zoukankan      html  css  js  c++  java
  • 【原创翻译】Crontab – Quick Reference Crontab的快速教程

    原文链接:http://www.adminschoice.com/crontab-quick-reference/   转载请注明译者及原文链接

    在Unix和Solaris系统中设置计划任务

    cron是一个unix和solaris系统的功能,主要用于通过cron dameon在后台按照一定的时间间隔来自动执行任务。这些任务在unix,solaris中通常被称作cron job。Crontab(CRON TABle)是一个文件,其中包含要运行的计划条目,以及运行的时间和次数。

    本文包括了unix cron job如下几个方面的内容:

    1,Crontab 限制

    2,Crontab命令

    3,Crontab文件——语法

    4,Crontab实例

    5,Crontab环境

    6,Disable Email(取消邮件)

    7,为cron活动生成日志

    1,Crontab限制

    如果你的用户名被包含在了/usr/lib/cron/cron.allow中,你就可以执行crontab。如果该文件不存在,只要你的用户名不在/usr/lib/cron.deny中,你也可以使用crontab。

    只要cron.deny存在并且为空,所有的用户都可已使用crontab。如果这两个文件都不存在,则只有root用户可以使用crontab。allow/deny文件每行包含一个用户名。

    2,Crontab 命令

    export EDITOR=vi; 来打开crontab文件。

    crontab -e 编辑crontab文件,如果其不存在,则会创建一个

    crontab -l   显示crontab文件

    crontab -r  删除crontab文件

    crontab -v  展示上一次编辑的crontab文件(这个选项只在少数几个系统上可用)

    3,Crontab文件

    Crontab语法:

    crontab文件中用五个字段来指定命令运行的时间间隔,以及天和日期。

    *     *     *   *    *        command to be executed
    -     -     -   -    -
    |     |     |   |    |
    |     |     |   |    +----- day of week (0 - 6) (Sunday=0)
    |     |     |   +------- month (1 - 12)
    |     |     +--------- day of        month (1 - 31)
    |     +----------- hour (0 - 23)
    +------------- min (0 - 59)

    值域中的*表示所有的合法值。
    每一列的值可以是*,也可以是以都好隔开的元素表。一个元素或者是上图所示范围内的一个数字,或者是以连字符隔开的两个数字(指代范围)
    注意:
    A.)所有的操作系统都不支持重复模式,如:/2表示每两分钟,/10表示每10分钟。
    B.)指定运行在具体哪几天可以通过两个字段:month day 和 weekday。如果这两个字段都有了,他们的作用会叠加。

    4,Crontab实例
    crotab文件中的这一行表示在每天的下午6:30分从/home/someuser/tmp中移除所有临时文件:
    30     18     *     *     *         rm /home/someuser/tmp/*
    像下面这样改变参数的值将会让命令按照不同的日程运行:
    min hour day/month month day/week Execution time
    30 0 1 1,6,12 * – 00:30 Hrs  on 1st of Jan, June & Dec.
     
    0 20 * 10 1-5 –8.00 PM every weekday (Mon-Fri) only in Oct.
     
    0 0 1,10,15 * * – midnight on 1st ,10th & 15th of month
     
    5,10 0 10 * 1 – At 12.05,12.10 every Monday & on 10th of every month


    注意:若是不小心输入了没有带参数的crontab命令,不要用control-d退出,因为这个命令会删除crontab文件中的所有条目,应该是用Control-c来退出。

    5,Crontab环境

    在shell中(/usr/bin/sh),cron从用户的HOME目录下调用命令。

    cron为每个shell都提供了一个默认环境,定义如下:

    HOME=user’s-home-directory
    LOGNAME=user’s-login-id
    PATH=/usr/bin:/usr/sbin:.
    SHELL=/usr/bin/sh

    想要自己的.profile执行的用户必须明确在crontab条目中或者被条目调用的脚本中指定。

    6,取消邮件

    默认情况下,cron job被执行时会向用户的账户发送一封邮件。如果想取消这个,可以在cron job的行尾加上:

    >/dev/null 2>&1

    7,生成日志文件

    要得到cron的执行日志,可以这么做:

    30 18 * * * rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log

  • 相关阅读:
    Linux 用户和组管理
    Bash 基础特性
    Linux 中常用的基础命令二
    Linux 中常用的基础命令一
    Linux 获取帮助
    Linux 基础入门二
    Linux 基础入门一
    计算机基础
    python 操作元组 列表===python中三大宝刀(字典已经再上一遍 说过)
    mysql 创建数据存储过程的申明
  • 原文地址:https://www.cnblogs.com/andy071001/p/3010037.html
Copyright © 2011-2022 走看看