Mac的crontab定时任务
亲测案例
*/1 * * * * * `cd /Users/liuhao && /usr/local/bin/php ./mytest.php`
*/1 * * * * * `/usr/local/bin/php /Users/liuhao/test.php`
*/1 * * * * * `date >> /Users/liuhao/log/crontab.log`
注意事项
Mac的定时任务,除基本规则外.很多地方还有很大不同的.
通过测试发现:
Mac新建文件的权限, 己: 读写 组: 读 他人: 读
和Linux还是有很大区别的.
-rw-r--r-- 1 liuhao staff 170B 9 13 16:11 test.php
所以我们在使用中应该特别注意, 定时任务创建者, 和运行文件之间的权限关系.
1. 和Linux不同的地方是, crontab定时任务中的命令需要用``包起来和shell中运行一般,PHP命令需要指定全路径.
如PHP, 可以通过which php 获得(注意环境变量).
2. 需要认识到, 不同用户运行的contab是相对独立的, A和B用户, 看不到彼此添加的定时任务.这一点和Linux一样.
2. 最需要注意的时文件权限, 谁运行的crontab -e 就需要谁对运行文件拥有相应权限, 否则运行无效.
如果定时任务,调用的时PHP, 还要注意该PHP文件与处理文件之前的权限问题.
我建议方式是:
sudo crontab -e 直接用root来编写定时任务.
免去, 后期维护的不确定性.
规则
规则就不累述了, 和Linux的写法一样.
test.php文件内容
date_default_timezone_set('PRC');
$redis = new Redis();
$redis->connect('127.0.0.1','6379');
$redis->select('9');
$redis->set('test',date('Y-m-d H:i:s', time()));