分类: LINUX
2013-04-03 17:32:13
虽然关于 Crontab 的介绍到处都是,详细读了一遍这个词条,收获还是有的。Crontab 这个名字来自chronos一个古希腊语, “时间”的意思.(这句话是看到的,哈哈)。
一. Crontab的配置:
Crontab的配置在网上可以很方便搜到,这里就不说crontab的配置了,但是需要注意一点crontab 只能精确到分钟,不能精确到秒。
二. Crontab 配置任务常见陷阱:
1, 创建一条新的crontab任务,时间间隔必须大于2分钟,否则任务将不会被调度到(例如5点30分钟创建一个5:31分中执行的任务,这样到时候该任务是不会执行的,当然第二天以后是会执行的);
2, crontab执行是的环境变量可以用一个简单的crontab任务测一下
脚本crontabEnv.sh内容如下:
export > env.txt
创建一个crontab 任务执行一下crontabEnv.sh试一下就知道了。
3, 为什么做crontab环境变量这样一个测试,原因是很多情况下crontab不执行都是环境变量的问题。
最近配置了一个crontab,发行手动可以执行,但是在crontab里面不执行,在网上看了看,都说应该是环境变量的问题,设置了下环境变量就ok了。设置环境变变量有好多种方法.
这里说一下常用的设置方法:第一种,脚本里面增加 export path=$path:/path1;第二种,就是在自己的用户下面的.bash.profile里面增加,然后在脚本里面增加source 用户路径/.bash.profile。第二种情况一般用到使用的环境变量比较多时,或者是自己手动执行脚本可以执行,但是创建成crontab是不执行,如果你也不太清楚自己到底使用了那写换将变量,就可以使用第二种方法,用source 用户路径/.bash.profile。
三.Crontab配置的技巧:
1, 准备好需要执行的命令,如果命令有参数,最好使用脚本的方式;
2, 手动测试一下,看是否ok;
3, 配制成crontab ,尽量设置一个尽快能执行的时间(创建和运行时间要大于2分钟)测试一把,尽量把输出重定向到一个文件,方便定位那里有问题,比如把运行结果追加到一个文件>>data.run.log 2>&1 ;
4, 如果有问题,先检测拼写有没有问题,如果检查了半天脚本,发现配置任务是拼写错了,那就不应该了。这种最简单的检查方式就是直接把任务复制一下执行看看。其他的不执行应该就是环境变量的问题了,注意设置环境变量;
5,一定要在任务正确执行至少一次以后在离开。allenquan,本内容来自腾讯内部分享,请勿外传!