zoukankan      html  css  js  c++  java
  • Linux crontab 语法和具体的例子

    基本格式 :
    *  *  *  *  *  command
    分 时 日 月 周 命令

    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要执行的命令

    crontab文件的一些样例:

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的样例表示每晚的21:30重新启动apache。

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的样例表示每月1、10、22日的4 : 45重新启动apache。

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的样例表示每周六、周日的1 : 10重新启动apache。

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的样例表示在每天18 : 00至23 : 00之间每隔30分钟重新启动apache。

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    上面的样例表示每星期六的11 : 00 pm重新启动apache。

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    每一小时重新启动apache

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    晚上11点到早上7点之间。每隔一小时重新启动apache

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    每月的4号与每周一到周三的11点重新启动apache

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    一月一号的4点重新启动apache

    名称 : crontab

    使用权限 : 全部使用者

    使用方式 :

    crontab file [-u user]-用指定的文件替代眼下的crontab。

    crontab-[-u user]-用标准输入替代眼下的crontab.

    crontab-1[user]-列出用户眼下的crontab.

    crontab-e[user]-编辑用户眼下的crontab.

    crontab-d[user]-删除用户眼下的crontab.

    crontab-c dir- 指定crontab的文件夹。

    crontab文件的格式:M H D m d cmd.

    M: 分钟(0-59)。

    H:小时(0-23)。

    D:天(1-31)。

    m: 月(1-12)。

    d: 一星期内的天(0~6。0为星期天)。

    cmd要执行的程序,程序被送入sh执行。这个shell仅仅有USER,HOME,SHELL这三个环境变量

    说明 :

    crontab 是用来让使用者在固定时间或固定间隔运行程序之用。换句话说。也就是相似使用者的时程表。-u user 是指设定指定

    user 的时程表,这个前提是你必需要有其权限(比方说是 root)才可以指定他人的时程表。假设不使用 -u user 的话。就是表示设

    定自己的时程表。

    參数 :

    crontab -e : 运行文字编辑器来设定时程表,内定的文字编辑器是 VI,假设你想用别的文字编辑器,则请先设定 VISUAL 环境变数

    来指定使用那个文字编辑器(比方说 setenv VISUAL joe)

    crontab -r : 删除眼下的时程表

    crontab -l : 列出眼下的时程表

    crontab file [-u user]-用指定的文件替代眼下的crontab。

    时程表的格式例如以下 :

    f1 f2 f3 f4 f5 program

    当中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执

    行的程序。

    当 f1 为 * 时表示每分钟都要运行 program,f2 为 * 时表示每小时都要运行程序。其馀类推

    当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要运行,f2 为 a-b 时表示从第 a 到第 b 小时都要运行,其馀类推

    当 f1 为 */n 时表示每 n 分钟个时间间隔运行一次。f2 为 */n 表示每 n 小时个时间间隔运行一次,其馀类推

    当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要运行。f2 为 a, b, c,... 时表示第 a, b, c...个小时要运行,其馀类推

    使用者也能够将全部的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

    样例 :

    #每天早上7点运行一次 /bin/ls :

    0 7 * * * /bin/ls

    在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时运行一次 /usr/bin/backup :

    0 6-12/3 * 12 * /usr/bin/backup

    周一到周五每天下午 5:00 寄一封信给 alex@domain.name :

    0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

    每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....运行 echo "haha"

    20 0-23/2 * * * echo "haha"

    注意 :

    当程序在你所指定的时间运行后。系统会寄一封信给你,显示该程序运行的内容,若是你不希望收到这种信。请在每一行空一格之

    后加上 > /dev/null 2>&1 就可以

    样例2 :

    #每天早上6点10分

    10 6 * * * date

    #每两个小时

    0 */2 * * * date

    #晚上11点到早上8点之间每两个小时。早上8点

    0 23-7/2,8 * * * date

    #每一个月的4号和每一个礼拜的礼拜一到礼拜三的早上11点

    0 11 4 * mon-wed date

    #1月份日早上4点

    0 4 1 jan * date

    $crontab -l 列出用户眼前crontab.

  • 相关阅读:
    HDU 1009 FatMouse' Trade
    HDU 2602 (简单的01背包) Bone Collector
    LA 3902 Network
    HDU 4513 吉哥系列故事——完美队形II
    LA 4794 Sharing Chocolate
    POJ (Manacher) Palindrome
    HDU 3294 (Manacher) Girls' research
    HDU 3068 (Manacher) 最长回文
    Tyvj 1085 派对
    Tyvj 1030 乳草的入侵
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4594804.html
Copyright © 2011-2022 走看看