Crontab小记
2013-05-31 00:39 v2m 阅读(477) 评论(0) 编辑 收藏 举报介绍
crontab用来设置周期性被cron这个守护进程执行的指令的命令。
参数有
-l 列出当前用户的所用计划任务 -e 编辑当前用户的计划任务 -r 删除当前用户的计划任务 -u 指定一个用户
运行crontab -e会看到一个被注释了的简短教程
这个文件里面的每一行对应一个任务,格式是
# 文件格式说明 # ——分钟 (0 - 59) # | ——小时 (0 - 23) # | | ——日 (1 - 31) # | | | ——月 (1 - 12) # | | | | ——星期 (0 - 7)(星期日=0或7) # | | | | | # * * * * * 被执行的命令
注:如果日期和星期同时被设定,那么其中的一个条件被满足时,指令便会被执行。
时间格式
*: 表示任何时刻 ,: 表示分割 -:表示一个段,如第二端里: 1-5,就表示1到5点 /n : 表示每个n的单位执行一次,如第二段里,*/3, 就表示每隔4个小时执行一次命令。也可以写成1-23/3.
注意事项
crontab中的命令执行的时候环境参数跟在shell中执行时是不一样的(可以打印env对比一下),所有经常对变量有要求的一些命令执行的时候可能有错误,这时候可以手动的设置这边变量的值:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin HOME=/ 01 * * * * cmd__
我遇到的情况是ruby的脚本无法执行,看了下是ruby的环境参数都没有带上,通过
/usr/bin/bash -c -l "cmd…"
解决了问题,上面的命令是指定shell,带入当前用户的环境变量,来执行cmd语句
还有一个工具帮你正确生成crontab的语句,whenever
技巧
通过设置5个段都是*可以立即执行后面的任务,从而快速测试任务命令是否有写正确
参考:http://zh.wikipedia.org/wiki/Cron