linux如何定时执行thinkphp 以ubuntu为例子 首先明白crontab的基础使用方法 **常用命令** crontab -l //显示用户的crontab文件的内容 crontab -e //编辑用户的crontab文件的内容 crontab -r //删除用户的crontab文件 启动:/etc/init.d/cron start ( service cron start ) 重启:/etc/init.d/cron restart ( service cron restart ) 关闭:/etc/init.d/cron stop ( service cron stop ) **crontab定时写法记录** ```shell # 每分钟执行 * * * * * # 每五分钟执行 */5 * * * * # 每小时执行 0 * * * * # 每天执行 0 0 * * * # 每周执行 0 0 * * 0 # 每月执行 0 0 1 * * # 每年执行 0 0 1 1 * ``` 详细使用请参考:https://www.cnblogs.com/wangwei916797941/p/9234025.html 接下来开始编写脚本,新建crond.sh ```shell #!/bin/bash # 1.执行 php 命令不需要到thinkphp项目的目录下 2.index.php为入口文件 3.第三个参数为需要执行方法的路由 php /alidata/www/teanet_bpm_api/trunk/public/index.php /job/MyJob/job1 ``` **有时候会报错xxx目录不存在,建议在linux上创建文件,而不是从windows上传** **注意:需要给crond.sh赋予755权限!!** 新建成功后,使用crontab -e 添加任务 ```shell # by chenls */1 * * * * /alidata/www/teanet_bpm_api/trunk/crond.sh ``` 重启服务service cron restart # 后话 ubuntu默认未开启crontab日志 ```php sudo vim /etc/rsyslog.d/50-default.conf //将文件内的#号去掉 # cron.* /var/log/cron.log #将cron前面的注释符去掉 // 重启rsyslog sudo service rsyslog restart sudo service cron restart 查看crontab日志 vim /var/log/cron.log ```