脚本将在 root 终端中运行,但当以用户身份作为 cronjob 运行时则不会运行

脚本将在 root 终端中运行,但当以用户身份作为 cronjob 运行时则不会运行

计划任务:

51 18 * * * /home/XXXXXX/public_html/wp-content/uploads/wpallimport/files/wpai_scripts/ld_wpai_script 2>> /home/XXXXXX/public_html/wp-content/uploads/wpallimport/files/wpai_scripts/ld_wpai_script_cron.log

剧本:

#!/bin/bash
set -x

cd /home/XXXXXX/public_html/wp-content/uploads/wpallimport/files/ && wget "https://XXXXXXsystems.com.au/WSDataFeed.asmx/DownLoad?CustomerCode=XXXXXX&WithHeading=true&WithLongDescription=true&DataType=0" -O leader-direct.zip && rm -rf ld-direct/ ; mkdir ld-direct/ && unzip -q leader-direct.zip -d ld-direct/ && rm -f leader-direct.zip && mv -f ld-direct/*.csv lead.csv && rm -rf ld-direct/ && wget -q -O - "https://www.XXXXXX.com.au/wp-load.php?import_key=XXXXXX&import_id=28&action=trigger"

我的脚本将在根终端中执行时运行,但在以用户身份作为 cronjob 运行时不会运行。

crob 工作确实会触发,如下grep XXXXXX /var/log/cron所示:

Jan 15 18:38:01 server CROND[32025]: (XXXXXX) CMD (/home/XXXXXX/public_html/wp-content/uploads/wpallimport/files/wpai_scripts/ld_wpai_script 2>> /home/XXXXXX/public_html/wp-content/uploads/wpallimport/files/wpai_scripts/ld_wpai_script_cron.log)

我尝试过的:

  1. 确保脚本的权限为755
  2. 我尝试在用户 crontab 文件中匹配 root 和用户的 env PATH="/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/cpanel/composer/bin:/root/bin",并且由于 cron 作业可以在 root 终端中毫无问题地执行,所以我认为排除了 PATH 的问题。
  3. 确保 crontab 文件末尾有换行符(空行)。
  4. 使用命令的完整路径,例如user/bin/wget

我的研究表明,以下是阻碍人们运行 cron 作业的 4 个最常见原因。但我想我已经排除了它们。

那么可能出了什么问题呢?

相关内容