Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104673971
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-20 14:43:02

作者: erfcend  出自:
作者:doomhuntercj

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

写法:
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 的方式来设定时程表。

特别注意事项:
很多朋友们写出crontab结果不能运行大多都是这样两个原因:

1、路径,执行shell脚本的路径,crontab里执行的路径并非你shell脚本的路径,写法得注意,如(run.sh ,写在/home/alex下,内容为:

#!/bin/sh
java -cp /opt/lib/commons-logging.jar:news.jar com.mangken.NewsCrawl

写法的new.jar是/home/alex下,就一定要改为绝对路径。

2、执行环境,很多朋友抱怨说,为啥明明手动执行的shell怎么就是都不能用crontab执行呢?甚至明明程序里已经开始看到执行了,而有些函数和方法都没有执行,那应该就是执行环境的问题,手动的执行环境和crontab的执行环境有所不同,crontab是一个新的shell里面这个shell不会加载你的profile 你需要在运行之前重新加载环境变量方法就是在写shell时, 加入用户身份

* * * * * su - user -c 'your.shell'

例子: */30 * * * * su -root -c '/home/alex/run.sh'
阅读(606) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~