laravel crontab定时任务

laravel 配置crontab定时任务三步走:

1、env:当Cron无法生效时,可能是Cron执行环境变量不正确引起的;确保cron服务开启;

#环境变量配置
>env > /tmp/env.output

#cron状态查看
>service cron status 

#cron服务开启
>service cron start

#查看cron命令配置
>vim /var/spool/cron/crontabs/root

#查看cron命令日志
>tail -f /var/log/cron.log

#cron服务重启
>sudo service cron restart

打开/tmp/env.output文件,将PATH字段整行添加至corntab文件顶部,corntab文件在/var/spool/cron目录下。

2、crontab命令创建:

#查看已创建的cron命令
>crontab -l
# m h  dom mon dow   command
* * * * * /usr/bin/php  /var/www/dev/artisan schedule:run >> /dev/null 2>&1

#查看php路径
>whereis php
php: /usr/bin/php7.2 /usr/bin/php /usr/lib/php /etc/php /usr/include/php /usr/share/php7.2-gd /usr/share/php7.2-json /usr/share/php7.2-intl /usr/share/php /usr/share/php7.2-xml /usr/share/php7.2-common /usr/share/php7.2-mbstring /usr/share/php7.2-opcache /usr/share/php7.2-sqlite3 /usr/share/php7.2-curl /usr/share/php7.2-readline /usr/share/php7.2-pgsql /usr/share/php7.2-zip /usr/share/php7.2-mysql /usr/share/php7.2-bcmath /usr/share/man/man1/php.1.gz

#添加cron命令
#小坑注:cron命令之后必须有回车换行
#小坑注:php路径必须为绝对路径,不能为相对路径
>crontab -e
# m h  dom mon dow   command
* * * * * /usr/bin/php  /var/www/dev/artisan schedule:run >> /dev/null 2>&1

2.1、小坑注:

通过 crontab -e 命令创建的 Cron 是属于 root 用户,如果定时任务在实行时主动写入日志或者遇到异常未捕捉,会创建 root 权限的日志文件,最终会导致 php-fpm 的 www 账号无法写入。

因此需要在创建 cron 的时候指定用户:

#个人管理的系统中 php-fpm 执行用户都是 www,请根据自己的实际情况调整代码。
>crontab -u www -e

3、容器中执行任务开启命令:

>artisan schedule:run

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章