分类: LINUX
2005-06-22 10:33:33
cron来自希腊语的chronos(时间)一词。在linux中,通过运行crontab -e就可以设置在特定的时刻自动运行你指定的程序。每个用户的自动运行程序,都放在/var/spool/cron/目录下,以自己用户名命名的文件中。在这些文件中,每一行都设置一个自动指行的命令,以及其运行的时间。每一行都由7个字段构成,相邻的字段以空格相间 一个域可以是一个星号 (*) ,匹配可取的所有的值。 数字可以使用范围表示。范围是指用连字号 (-) 连接的两个数字。两头的数字也包括在内。例如: 8-11 作为表示“小时”的条目指明在 8, 9, 10 和 11 时内运行。 列表也可以接受。列表是指用逗号分隔的一批数字(或范围)。例如:“ 1,2,5,9 ”, “ 0-4,8-12 ”。 增幅可以与范围连用。范围之后跟随“ / 英文名可以在描述“月份”和“星期几”时使用。使用特定的月份或星期几的前三个字母表示(大小写无关)。不得使用英文名的范围或列表。 第六个域(行的剩余部分)指明了要运行的命令。一行中整个命令部分遇到一个换行符或 % 结束,命令会以 /bin/sh 执行或以 cron 文件中 SHELL 变量指明的 shell 执行。命令中的百分号 (%) ,除非以反斜杠 () 转义,会被转换为换行符,第一个 % 后的所有数据会被发送给命令作为标准输入。 注意:命令在哪一天执行由两个域指明——几号,或星期几。如果两个域都有限制(也就是说,不是 * ),两者中 任一时间 匹配当前时间命令就会被执行。例如: =================================================================== crontab-操作每个用户的守护程序和该执行的时间表。 例子: 00 03 * * * /usr/local/ucwap-server/bin/meventlog_todb.sh//每天凌晨3点执行
----- --------------
分钟 0-59
小时 0-23
几号 1-31
月份 1-12 (或英文名,见下面说明)
星期几 0-7 ( 0 或 7 指周日,也可以使用英文名)
“ 30 4 1,15 * 5 ” 会导致命令在每月1号和15号,以及每周五早晨 4:30 被执行
部分参数说明
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这三个环境变量。
下面是一个例子文件:
30 03 * * * /usr/local/ucwap-server/bin/accesslog_todb.sh//每天凌晨3点半执行
*/5 * * * * /usr/local/ucwap-server/bin/watchdog.sh//每隔5分钟执行一次