我将其作为 cron 作业运行:
( export PATH='/usr/bin:/bin' && echo "$PATH" && wget "https://www.mahmansystems.com.au/WSDataFeed.asmx/DownLoad?CustomerCode=%2F&WithHeading=true&WithLongDescription=true&DataType=0" -O mahman_direct.zip ) && echo 'I reached the end' &>> /home/myparadise/public_html/wp-content/uploads/import/files/output.txt
当我以 cron 用户身份在 CLI 中运行时,它工作正常。
到目前为止,我只有两个导致 cron 作业悄悄失败的原因,这可以解释为在 CLI 中与在 cron 中运行命令时用户和路径的差异,但这次似乎也不是,因为我测试了 cmd在 CLI 中作为 cron 用户,并且没有观察到权限错误。
wget 确实输出/显示一些描述检索文件过程的文本,但用户不需要交互或输入/响应。
没有错误被定向到 output.txt。
还有什么可能是错的?
也尝试过curl -sLo
替代方案,以防万一。没什么区别。
我不知道
%
cron 环境中的符号行为。逃跑
\%
,它的工作原理。参考 1:https ://stackoverflow.com/a/1921266
参考 2:Cron 陷阱。
我个人建议避免
%
触发意外场景等特殊字符是在脚本中放置cron
除绝对琐碎操作以外的任何内容。(尽管我认为单个调用wget
可能合理地归类为微不足道的。嗯。)然后从cron
.例如,
/usr/local/etc/mahmansystems
(记住chmod +x
):然后,作为一个示例系统级
cron
条目:如果您有多个 URL 调用,
mahmansystems
您甚至可以case
……esac
在同一个脚本中调用它们,提供一个(简单的)参数来确定使用哪个。