博主呓语:

crontab定时执行PHP脚本

Posted by 破冰 on 2012-12-25 18:21 Tuesday

1, php写shell脚本在文件开头写上 !#/opt/php5/bin/php -q

ps:这里的/opt/php5/bin/php是PHP解释器路径,-q是让php不输出header信息。这样可以像运行shell脚本一

样,./xxx.php文件就能执行了,而不用php命令,因为!#后面标明了使用什么来执行。

2, php脚本需要有执行权限。

3, php脚本中的路径要使用绝对路径,如果使用相对路径会以user目录为基准,例如在php中写个'log.txt',以

root身份运行crontab来执行脚本,会在/root/下生成log.txt。

4, crontab 编写定时任务的命令格式如下:

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

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

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

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

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令
 
写到一个脚本里面,然后在这里直接调用这 个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设
 
定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
 
分钟 (0-59) 
小時 (0-23) 
日期 (1-31) 
月份 (1-12) 
星期 (0-6)//0代表星期天
 
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"
 
表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
 
例子:
 
每天早上6点输出:0 6 * * * echo "Good morning." >> /tmp/test.txt
 
每两个小时:0 */2 * * * echo "Have a break now." >> /tmp/test.txt
 
晚上11点到早上8点之间每两个小时,早上八点:0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
 
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点:0 11 4 * 1-3 command line
 
5,  写完后wq退出编辑,然后 service cron restart

评论:

上宫庄怎么样     2012-12-26 13:58   回复 1楼
来哦接下了

发表评论: