您的位置:首页 > 运维架构 > Linux

Centos7下如何用cron定时执行PHP文件

2017-07-03 16:48 423 查看
要使用crontab定时器工具,必须要启动cron服务:service cron start



1、crontab各参数说明:

-e : 执行文字编辑器来编辑crontab,内定的文字编辑器是VI

00 00 * /usr/bin/php /xxx/Timer.php 每天凌晨执行PHP脚本

设置后:crontab: installing new crontab

切切:一定要写对/usr/bin/php 路径,就因为这个问题我捣鼓整整一天(泪),可以用which php 查看(点赞)

-r : 删除目前的crontab

-l : 列出目前的crontab(查看专用)

-i : 会和-r 配合使用,在删除当前的crontab时询问,输入y 则删除

注意crontab是分用户的,以谁登录就会编辑到谁的crontab

2、crontab特殊的符号说明:

"*"代表所有的取值范围内的数字。特别要注意哦!

"/"代表每的意思,如"*/5"表示每5个单位

"-"代表从某个数字到某个数字

","分散的数字

crontab文件的使用示例:

30 21 * 表示每晚的21:30

45 4 1,10,22 表示每月1、10、22日的4 : 45

10 1 6,0 表示每周六、周日的1 : 10

0,30 18-23 * 表示在每天18 : 00至23 : 00之间每隔30分钟

0 23 6 表示每星期六的11 : 00 pm

/1 每一小时

23-7/1 * 晚上11点到早上7点之间,每隔一小时

8,13 1-5 从周一到周五的上午8点和下午1点

0 11 4 * mon-wed 每月的4号与每周一到周三的11点

0 4 1 jan * 一月一号的4点

3、crontab定时任务不执行问题

排查原因步骤如下:

首先,确认服务器是否开启定时任务计划服务,只有root用户才能对crond服务进行开启和关闭

[root@mimvp-bj script]# service crond status

crond is stopped

[root@mimvp-bj script]# service crond start

Starting crond: [ OK ]

[root@mimvp-bj script]# service crond status

crond (pid 24577) is running…

请确保crond状态为 is running…

如果crond状态为 crond is stopped ,则定时任务服务不会生效故无法执行

crontab 常见错误的几个问题

编辑 crontab :crontab -e

(指定bash是非常有效的解决方式,我今天碰到这个问题,死活执行不起来,后台调试过程中添加了这一句就解决了)

# minute hour  day month week   command
SHELL=/bin/bash
30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh

Ctrl + O (写入)——》 Enter键(保存文件名)——》 Ctrl + X(退出)

输入查看命令:

crontab -l

# m
4000
h  dom mon dow   command
SHELL=/bin/bash
30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式)

查看动态日志

tail -f /var/log/cron

(博主帮帮的!!!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: