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

 

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