从日期派生 URL

Deriving URLs from date

我想使用 CRON 作业自动从第三方服务器下载图像,然后将图像上传到我的网站。

我有 2 个问题:

首先,第三方站点使用以下逻辑每天更改图像名称:

http://thirdpartysite.com/ImageFinder.aspx?ReportID=FILENAME 2014 年 10 月 6 日之后的每一天,FILENAME 为 26601 +14(因此 10 月 7 日为 26615,10 月 8 日为 26629 等)。

我如何将其构建到一个简单的 Linux bash 脚本中以与 wget 一起使用?

其次,我如何使用相同的脚本通过 FTP(或类似的)将其上传到我的网站。

注意:我有权在我的网站上托管该文件,并已链接到原始网站/图片的来源。

date 命令有一种非常好的格式:%s,它打印自 "epoch" 以来的秒数,这是固定日期 1970 年 1 月 1 日,00:00世界标准时间。我称之为 "timestamp"。与此结合,您可以使用 -d date-string,以便将给定日期打印为秒数。现在,您可以使用今天的时间戳,从中减去“2014 年 10 月 6 日”的时间戳,得到两次之间的秒数。现在你可以将它除以 (60 * 60 * 24) 得到它的天数,并进一步计算得到所需的数字,并从中得到一个文件名。

-d 选项采用的日期字符串格式是灵活的,但截至目前我不确定它是否采用“2014 年 10 月 6 日”。尝试一些排列,或者更好,查看 "info" 页面。

按照@Abhay的建议,先获取10月6日的时间戳,存入变量$d0:

d0=$(date +%s -d 20141006)

然后存储目标日期的时间戳,比如 10 月 8 日并将其存储在 $d1:

d1=$(date +%s -d 20141008)

然后您可以计算差值并在 $((...)) 中应用所需的算术运算,如下所示:

echo $((26601 + 14 * (d1 - d0) / 60 / 60 / 24))
# outputs: 26629