我将其作为 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
替代方案,以防万一。没什么区别。
答案1
答案2
为了避免触发意外场景等特殊字符,我个人的建议是在脚本中%
放置除绝对琐碎操作以外的任何内容。 cron
(尽管我认为对 的单个调用wget
可能会被合理地归类为微不足道。嗯。)然后从 调用脚本cron
。
示例/usr/local/etc/mahmansystems
(记住chmod +x
):
#!/bin/sh
wget 'https://...' &&
echo 'I reached the end'
然后,作为系统级条目的示例cron
:
0 * * * * www-data /usr/local/etc/mahmansystems >>& /home/myparadise/public_html/wp-content/uploads/import/files/output.txt
如果您多次调用 URL,mahmansystems
您甚至可以case
……esac
将它们放在同一个脚本中,提供一个(简单)参数来识别要使用哪个 URL。