Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471368
  • 博文数量: 118
  • 博客积分: 5550
  • 博客等级: 大校
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-30 17:32
文章分类

全部博文(118)

文章存档

2007年(4)

2006年(69)

2005年(45)

我的朋友

分类: LINUX

2005-06-22 10:33:33


cron来自希腊语的chronos(时间)一词。在linux中,通过运行crontab -e就可以设置在特定的时刻自动运行你指定的程序。每个用户的自动运行程序,都放在/var/spool/cron/目录下,以自己用户名命名的文件中。在这些文件中,每一行都设置一个自动指行的命令,以及其运行的时间。每一行都由7个字段构成,相邻的字段以空格相间


取值范围

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

分钟 0-59

小时 0-23

几号 1-31

月份 1-12 (或英文名,见下面说明)

星期几 0-7 ( 0 或 7 指周日,也可以使用英文名)

一个域可以是一个星号 (*) ,匹配可取的所有的值。

数字可以使用范围表示。范围是指用连字号 (-) 连接的两个数字。两头的数字也包括在内。例如: 8-11 作为表示“小时”的条目指明在 8, 9, 10 和 11 时内运行。

列表也可以接受。列表是指用逗号分隔的一批数字(或范围)。例如:“ 1,2,5,9 ”, “ 0-4,8-12 ”。

增幅可以与范围连用。范围之后跟随“ / ” 指明在范围内的数值的递增幅度。例如:“ 0-23/2 ”表示小时时指明命令隔一小时执行(在 V7 标准中是确定的:“ 0,2,4,6,8,10,12,14,16,18,20,22 ”)。增幅可以在星号后使用,如果你想指定“每两小时”,只要用“ */2 ”就可以了。

英文名可以在描述“月份”和“星期几”时使用。使用特定的月份或星期几的前三个字母表示(大小写无关)。不得使用英文名的范围或列表。

第六个域(行的剩余部分)指明了要运行的命令。一行中整个命令部分遇到一个换行符或 % 结束,命令会以 /bin/sh 执行或以 cron 文件中 SHELL 变量指明的 shell 执行。命令中的百分号 (%) ,除非以反斜杠 () 转义,会被转换为换行符,第一个 % 后的所有数据会被发送给命令作为标准输入。

注意:命令在哪一天执行由两个域指明——几号,或星期几。如果两个域都有限制(也就是说,不是 * ),两者中 任一时间 匹配当前时间命令就会被执行。例如:
“ 30 4 1,15 * 5 ” 会导致命令在每月1号和15号,以及每周五早晨 4:30 被执行

===================================================================

crontab-操作每个用户的守护程序和该执行的时间表。

部分参数说明
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab -[-u user]-用标准输入替代目前的crontab.
crontab -1[user]-列出用户目前的crontab.
crontab -e[user]-编辑用户目前的crontab.
crontab -r[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这三个环境变量。
下面是一个例子文件:

例子:

00 03 * * * /usr/local/ucwap-server/bin/meventlog_todb.sh//每天凌晨3点执行
30 03 * * * /usr/local/ucwap-server/bin/accesslog_todb.sh//每天凌晨3点半执行
*/5 * * * * /usr/local/ucwap-server/bin/watchdog.sh//每隔5分钟执行一次

阅读(1318) | 评论(0) | 转发(0) |
0

上一篇:介绍LDAP

下一篇:武汉-传说中的公交车

给主人留下些什么吧!~~