Bash
命令行正常工作時cron作業任務錯誤
我從目錄 httpdocs/pub/ftp-admin/ 執行一個 .sh bash 文件。在目錄的命令行上一切正常。如果我在 plesk 中執行 cron 任務,所有 magento 2 命令都不起作用,我會收到此消息。
Magento 支持 PHP 7.1.3 或更高版本。
請參閱下面的腳本。怎麼了。我執行:CentOS Linux 7.8.2003 和 php 7.2.31
#!/usr/bin/env bash file=*.ZIP if [ -f $file ] then echo $file "exist" # cp $file ./backup # unzip -P web $file # rm -f $file fi # if [ -f *BASIC.XML ] then mv *_BASIC.XML BASIC.XML php -f ../../bin/magento import:job:run 1 fi # if [ -f *PRICES.XML ] then mv *_PRICES.XML PRICES.XML php -f ../../bin/magento import:job:run 4 php -f ../../bin/magento import:job:run 2 fi # if [ -f *STOCKINFO.XML ] then mv *_STOCKINFO.XML STOCKINFO.XML php -f ../../bin/magento import:job:run 3 fi # cp -f *.XML ./backup # rm -f *.XML
問題解決了。plesk 中的 Cron 任務在低於 SSH 的 PHP 版本下執行。通過像這樣編輯腳本,問題得到解決:
/opt/plesk/php/7.2/bin/php -f $MAGEPATH/magento import:job:run 1
每當您在 crontab 中使用腳本時,都需要相應地
PATH
為命令(此處)設置變數。/path/to/the/bin/magento
前任:
PATH=$PATH:/path/to/the/bin/magento
要在腳本中使用
../
和./
在腳本cd
中執行腳本的目錄或始終使用完整路徑,如/path/to/the/bin/magento