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执行定时任务