一 .sh的方法
1 .给你项目中要执行定时任务的写好API接口
2. 在你的项目中创建一个以 .sh结尾的文件。 eg: start.sh
3 给这个 .sh文件足够的权限 eg:chmod -R 777 start.php
4. 写定时任务:使用命令 crontab -e 打开之后写入
eg: 每分钟执行 */1 * * * * 你的.sh得文件绝对路径 >/dev/null 2>$1
(可以使用crontab -l 检查有哪些定时任务)
5 重启crond 命令 service crond restart
重启成功 然后你的定时任务就做好了
二 . 直接在crontab -e中 定时访问你写好的项目的接口
eg : */1 * * * * /usr/local/curl(你自己的curl路径) http://baidu.com(你的项目接口)
三 . 补充内容:定时任务创建的日志文件权限不够,被禁止写入时
有时候我们的定时任务中会执行向日志文件添加记录的操作,一般加了这种操作之后,你的定时任务是由那个账号管理的,那么这个日志文件就是由谁创建的。多数时候,我们的crontab 都是使用root 账户创建的;那么我们的日志文件相同也就是由 root 用户创建的;
这时候我们的代码一般是由nginx或者apache来运行的,若是通过代码再向日志文件内写入信息就一定会报错,显示权限不够
这时候我们其中一个解决方法就是:
给定时任务指定执行用户
以下用nginx为例:
1.使用 vi nginx.conf 文件是由那个用户运行的 从下图可以看出执行的用户是 nginx
2. 我们将定时任务指定给 nginx 执行
使用命令 crontab -e -u nginx 打开文件,再将自己的定时任务编辑进去
后期查看由 nginx用户执行的定时任务,可以使用 crontab -l -u nginx;