命令行工作正常时 cron 作业任务错误

命令行工作正常时 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

答案1

每当您在 crontab 中使用脚本时,您都需要相应地设置PATH命令的变量(此处)。/path/to/the/bin/magento

前任:PATH=$PATH:/path/to/the/bin/magento

要在脚本中使用../and到脚本中执行脚本的目录,或者始终使用完整路径,例如./cd/path/to/the/bin/magento

答案2

问题解决了。 plesk 中的 Cron 任务在较低的 PHP 版本下运行,然后通过 SSH 运行。通过像这样编辑脚本,问题得到解决:

/opt/plesk/php/7.2/bin/php -f $MAGEPATH/magento import:job:run 1

相关内容