Chinaunix首页 | 论坛 | 博客
  • 博客访问: 115538
  • 博文数量: 29
  • 博客积分: 1440
  • 博客等级: 上尉
  • 技术积分: 371
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-03 15:57
文章分类

全部博文(29)

文章存档

2011年(5)

2010年(1)

2009年(23)

我的朋友

分类: LINUX

2009-06-18 10:57:21

crontab 是linux 系统下很方便的定时执行任务的程序。

使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则

service crond start 启动它。

cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任

务: 

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容   

crontab -r //删除某个用户的cron服务   

crontab -e //编辑某个用户的cron服务   

比如说root查看自己的cron设置:crontab -u root -l   

再例如,root想删除new的cron设置:crontab -u new -r

在编辑crontab服务时,编辑的内容有一些格式和约定。

输入 crontab -e 进入vi编辑模式:编辑的内容一定要符合下面格式:

minute hour day month dayofweek command

minute — 分钟,从 0 到 59 之间的任何整数

hour — 小时,从 0 到 23 之间的任何整数

day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期

的英文简写 如 sun、mon 等等)

command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是

执行你自行编写 的脚本的命令。)

在以上任何值中,星号(*)可以用来代表所有有效的值。

譬如,月份值中的星号意味着在满足其它制约条件后 每月都执行该命令。

整数间的短线(-)指定一个整数范围。

譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。

譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。

在范围后加上 / 意味着在范围内可以跳过 integer。

譬如,0-59/2 可以用来在分钟字段定义每两分钟。

间隔频率值还可以和星号一起使用。

例如,*/3 的值可以用在月份字段中 表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理。

具体步骤为:

(1) vi test.sh 编写要定时执行的任务的脚本,

chomd +x test.sh 使其具有可执行权限。

(2) copy test.sh /bin/ 下。

(3) crontab -e 编辑定时执行任务的时间。例如 :每天早上六点十分执行test.sh 脚本。

则进入vi编辑模式 ,10 6 * * * test.sh ,保存后退出。则每天早上六点十分系统会自动

运行这一脚本。

再例如:
 
   #晚上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的时候,要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中的
 
环境变量未必一致,一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)。
阅读(766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~