编 写:袁 亮 时 间:2014-03-13 说 明:crontab书写的一些注意事项 一、使用说明: crontab 是指定时linux服务器,自动的定时去执行一个脚本 一般用于定时去进行一些数据统计,缓存更新,消息提醒等等 二、使用流程: 1、脚本编写,并执行测试(/opt/ci123/php/bin/php *.php),看功能是否正常 a、定时脚本最好不要在浏览器中执行,因为定时脚本一般执行时间较长,如果在浏览器下执行,有死循环或者太耗时间的语句,中途停止不了,很容易因为这个把数据库等弄挂,项目不能正常访问。而在linux下直接执行,如果卡或异常,可以直接ctrl+c中止。 b、引入外部文件最好以全路径包含:通过define("FROOT",(dirname(__FILE__)))获取当前文件路径,再通过FROOT来拼接(易于迁移,防止多重include导致相对路径计算错误等) c、不允许浏览器访问,防止爬虫等异常访问,加在脚本的前面 [code] if(isset($_SERVER['HTTP_HOST'])){//定时脚本不允许浏览器访问 die(); } [/code] d、必须有输出,包括:脚本开始时间、结束时间,各模块的结束时间,方便后期排查 2、加入crontab a、crontab -e 进行crontab文件编辑,-e参数不可少,否则会导致将crontab内容清楚,切记 b、添加一条记录,例如: 第一行 以#开头的是注释,谁写的,什么时间,做什么用的 第二行,前5个,分别代表分、时、日、月、周(具体数字代表固定时间;1-5,代表区间;1,4,7代表指定几个时间;*/5代表每5个单位时间执行一次;*代表任意时间;); source /etc/profile.d/ice-3.2.1.sh;这个是有ice扩展的时候才加; 后面是调试时候的执行代码; >>/tmp/bbs_static_hour_log 是指将输出以追加的方式记录到/tmp/bbs_static_hour_log这个文件中,命名需规范 2>&1; 代表不管是正常输出,还是错误提示都记录到日志,照抄即可 [code] #袁亮-2013-12-03,统计bbs每天24小时发帖、回帖等数据 37 2 * * * ( source /etc/profile.d/ice-3.2.1.sh; /opt/ci123/php/bin/php /opt/ci123/www/html/bbs/sadmin/cront/makeStatic.php >>/tmp/bbs_static_hour_log 2>&1;) [/code]