Bash

命令行正常工作時cron作業任務錯誤

  • July 14, 2020

我從目錄 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

引用自:https://unix.stackexchange.com/questions/591614