linux下每分钟运行一次php文件

     先推荐几篇博客,比较有用。

https://blog.csdn.net/b1303110335/article/details/77097451;
https://blog.csdn.net/qq125293177/article/details/80434218;
https://blog.csdn.net/qq_32923745/article/details/78286385;

背景:公司对接了别的公司系统,所以需要获取其他公司的数据,他们提供接口,我们定时访问,所以需要用到定时任务。

开始之前还是先确定crond服务是否开启了吧;

systemctl list-units

如果已经开启,直接crontab -e,进入编辑页面;

* */1 * * * /usr/local/php7.0/bin/php  /usr/local/nginx/html/test/test.php

* */1 * * *  //告诉系统每分钟执行一次

/usr/local/php7.0/bin/php  //调用php  (有兴趣的去搜索下php和php-fpm的区别,反正这个害我走了很多弯路)

/usr/local/nginx/html/test/test.php   //需要执行的php文件

ps: 因为公司有多个项目,之前花钱买的,每个项目php版本还都不一样,所以我编译了多个php目录,根据你自己情况设置你的php,我的跟大部分的可能不一样

然后在相对应的目录下创建test.php 

我这里做了个简单的写入操作

file_put_contents('./log.txt','aaa',FILE_APPEND);

请注意这里,我被坑了,希望你别踩坑。我一直检查/usr/local/nginx/html/test/下面有没有创建log.txt,如果有说明定时任务执行了,如果没有说明没执行。结果最后发现这样最后写入的文件在/root下面建了个log.txt,而不是在当前目录下。所以写绝对路径比较好。

ps:

tail -f /var/log/cron

这个命令可以查看corntab的执行情况

可以先查看一下crontab的执行情况,我后来是因为看了这个然后发现我的文件已经执行了,然后搜索的log.txt,才发现在/root下面有个log.txt,然后才发现原来我的定时任务早就成功了,不然还一直以为没成功。

猜你喜欢

转载自blog.csdn.net/jueyan520/article/details/86242257