基本格式 :

*  *  *  *  *  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 [ -u user ] file 

crontab [ -u user ] { -l | -r | -e } 

说明 : 

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. 



crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。 



crontab命令有三种形式的命令行结构: 



crontab [-u user] [file] 



crontab [-u user] [-e|-l|-r] 



crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。 



命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab; 



命令行中-l选项的作用是显示用户crontab文件的内容。 



使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。 



执行命令crontab -u user -r即可删除当前用户的所有的cron作业。 



作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应的文件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。文件里的每一个请求必须包含以spaces和tabs分割的六个域。前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。 



第一道第五个字段的整数取值范围及意义是: 



0~59 表示分 



1~23 表示小时 



1~31 表示日 



1~12 表示月份 



0~6 表示星期(其中0表示星期日)

/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。

---------------------------------

基本格式 : 

*  *  *  *  *  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.

linux命令详解——crontab的更多相关文章

  1. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  2. Linux命令详解之—less命令

    Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...

  3. Linux命令详解之—more命令

    Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...

  4. 【转】linux命令详解:md5sum命令

    [转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...

  5. Linux命令详解之—cat命令

    cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...

  6. Linux命令详解之—pwd命令

    Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...

  7. Linux命令详解之–cd命令

    cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...

  8. Linux命令详解之–ls命令

    今天开始为大家介绍下Linux中常用的命令,首先给大家介绍下Linux中使用频率最高的命令--ls命令. 更多Linux命令详情请看:Linux命令速查手册 linux ls命令用于显示指定工作目录下 ...

  9. (转)linux命令详解之useradd命令使用方法

    linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...

随机推荐

  1. 系统调用与内存管理(sbrk、brk、mmap、munmap)(转)

    一.系统调用(System Call):在Linux中,4G内存可分为两部分——内核空间1G(3~4G)与用户空间3G(0~3G),我们通常写的C代码都是在对用户空间即0~3G的内存进行操作.而且,用 ...

  2. 【分布式事务】使用atomikos+jta解决分布式事务问题

    一.前言 分布式事务,这个问题困惑了小编很久,在3个月之前,就间断性的研究分布式事务.从MQ方面,数据库事务方面,jta方面.近期终于成功了,使用JTA解决了分布式事务问题.先写一下心得,后面的二级提 ...

  3. 手写web框架之实现依赖注入功能

    我们在Controller中定义了Service成员变量,然后在Controller的Action方法中调用Service成员变量的方法,那么如果实现Service的成员变量? 之前定义了@Injec ...

  4. mybatis resultMap 子元素

    resultMap constructor - 类在实例化时,用来注入结果到构造方法中 idArg - ID 参数;标记结果作为 ID 可以帮助提高整体效能 arg - 注入到构造方法的一个普通结果 ...

  5. python之pandas学习笔记-pandas数据结构

    pandas数据结构 pandas处理3种数据结构,它们建立在numpy数组之上,所以运行速度很快: 1.系列(Series) 2.数据帧(DataFrame) 3.面板(Panel) 关系: 数据结 ...

  6. Leetcode之动态规划(DP)专题-486. 预测赢家(Predict the Winner)

    Leetcode之动态规划(DP)专题-486. 预测赢家(Predict the Winner) 给定一个表示分数的非负整数数组. 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端 ...

  7. Int8,Int16,Int32,Int64 有啥不同呢?看了立马就懂!

    大家有没有写了很久代码,还不知道这个Int8,Int16, Int32, Int64有什么区别呢?或者是为什么后面的数字不一样呢? 初步了解了一下,才清楚这个东西. 先来扫盲一下计算机存储单元, 在计 ...

  8. Windows多线程编程入门笔记

    每次处理并行任务时,如果要等待用户输入或依赖外部(如与灿亨控制器响应),就应该为类似的操作单独创建一个线程,这样我们的程序才不会挂起无响应. 静态库和动态库 静态库是指在程序运行前就编译完成的库,如# ...

  9. C学习笔记-字符串的格式化输出和输入

    存储方式 字符串是内存中一段连续的char空间,以'\0'结尾 字符串就是0结尾的连续char的内存 '\0' <=> 0 <=> null printf函数,putchar函 ...

  10. (企业面试)描述Linux系统的启动过程?

    1简单描述(口头): 1.开机BIOS自检(检查硬件,cpu,主板,内存……) 2. MBR引导 硬盘 0 柱面 0 磁道 1 扇区的前446byte 3.  grub 引导菜单 cat/etc/gr ...