使用日期变量与 wget --post-data

使用日期变量与 wget --post-data

对于我想使用的项目获取在一个计划任务下载数据文件。在 wget 语句中,必须按以下格式定义开始日期和结束日期:

wget --post-data="stns=235&vars=TEMP&start=YYYYMMDDHH&end=YYYYMMDDHH"

因为我希望它通过 cron 作业来完成,所以我希望自动设置开始日期和结束日期。更具体地说,我希望将开始日期设置为“1 小时前”,将结束日期设置为“现在”。

帖子里也有类似的问题将日期 -1day 与 wget 一起使用。这里建议的解决方案是将变量放在单引号之间,但这不起作用。例如:

"[...]start='`date -d yesterday +%Y%m%d%H'&end=`date +%Y%m%d%H`"

当我尝试在终端中执行 wget 语句时,我只是收到错误“错误 400:错误请求”。

谢谢。

答案1

在 cron 作业中,%它很特殊,必须转义。另外,最好避免使用反引号语法。我建议如下:

wget --post-data="start=$(date ... +\%Y\%m\%d\%H)&end=$(date ... +\%Y\%m\%d\%H)&..."

相关内容