对于我想使用的项目获取在一个计划任务下载数据文件。在 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)&..."