crontab -e 新建/编辑一个任务
crontab -l 列出所有任务

crontab 格式:

基本格式 :
分钟 小时 日 月 星期 命令
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

执行PHP脚本:
* * * * * /usr/bin/php -f /root/test.php >> test.log

表示“每隔一分钟执行test.php文件,脚本的结果输出到test.log里”。 注意目录问题。

比如test.php里的代码可以是echo date("Y-m-d H:i:s") \n这种。

由于我是第一次用crontab,测试发现bin/php 这种方式只能单PHP文件可以完成的任务,如果涉及到include,require,要注意路径问题,涉及到“类(class)”似乎就不行了。希望哪位指点一下。

另外需要注意这个脚本需要有执行权限。

而我本人需要完成的任务是定时访问一个文件(链接)去生成sitemap,所以访问URL就不能用bin/php 去完成,而是要用bin/curl。所以我的代码就成了下边这样:

* * * * * /usr/bin/curl http://aa.com:8080/tools/sitemap.php >> /Desktop/untitled.html

关于这个命令里后边的输出,并不是必须的,只是为了方便在写命令的时候调试。

关于crontab命令的参数建议看一下手册,这里只复制了一段查到的资料里提到的。

本站@Jacendfeng 的这篇Linux 下执行定时任务 crontab 命令详解 写的非常详细,建议看一下。

参考资料:
鳥哥的 Linux 私房菜 -- 第十五章、例行性工作排程(crontab)
linux 自动执行 crontab学习笔记
linux定时调用指定url链接,linux crontab定时执行php脚本程序介绍
linux使用crontab实现PHP执行定时任务

09-15 03:19