从日期派生URL

时间:2015-02-14 10:01:56

标签: bash cron

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

我有两个问题:

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

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

如何将其构建为一个简单的Linux bash脚本,以便与wget一起使用?

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

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

2 个答案:

答案 0 :(得分:1)

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

-d选项所采用的日期字符串格式是灵活的,但截至目前我不确定是否需要" 2014年10月6日"原样。尝试一些排列,或者更好,检查"信息"页。

答案 1 :(得分:1)

根据@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
相关问题