【问题标题】:Deriving URLs from date从日期派生 URL
【发布时间】:2015-02-15 05:33:38
【问题描述】:

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

我有 2 个问题:

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

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

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

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

注意:我有权在我的网站上托管该文件,并已链接原始网站/为该图像添加了信用。

【问题讨论】:

    标签: bash cron


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      date 命令有一种非常好的格式:%s,它打印自“纪元”以来的秒数,即 1970 年 1 月 1 日 00:00 UTC 的固定日期。我将其称为“时间戳”。结合此,您可以使用-d date-string,以便将给定的日期打印为秒数。现在您可以获取今天的时间戳,从中减去“2014 年 10 月 6 日”的时间戳,您就可以得到这两次之间的秒数。现在你可以将它除以 (60 * 60 * 24) 得到它的天数,然后再做进一步的算术得到想要的数字,并从中得到一个文件名。

      -d 选项采用的日期字符串格式很灵活,但目前我不确定它是否按原样采用“6 Oct 2014”。尝试几种排列方式,或者更好的是,查看“信息”页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 2016-04-15
        • 1970-01-01
        • 1970-01-01
        • 2020-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多