我想自动从带有CRON作业的第三方服务器下载图像,然后将图像上传到我的网站。
我有两个问题:
首先,第三方网站每天使用以下逻辑更改图像名称:
http://thirdpartysite.com/ImageFinder.aspx?ReportID=FILENAME 2014年10月6日之后,FILENAME每天为26601 + 14(10月7日为26615,10月8日为26629等)。
如何将其构建为一个简单的Linux bash脚本,以便与wget一起使用?
其次,如何通过FTP(或类似)使用相同的脚本将其上传到我的网站。
注意:我有权在我的网站上托管该文件,并已链接原始网站/已放置的图片。
答案 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