从'curl HEAD命令'获取Date值

时间:2015-05-13 16:18:20

标签: linux curl

我想检查今天是否生成了位于http svn位置的文件。我正在运行以下命令来获取元数据 -

curl -i -X HEAD http://subversion.abc.com/svn/repos/latestOutput/somsuvra.xml

这个命令给了我所有的详细信息,如Date:,Server:,Last modified date:等。但是我想在创建文件时获取Date。然后使用系统日期检查它。如果它不匹配则文件过时。可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

获取Last-Modified日期为unix时间戳:

curl -s -I http://src.chromium.org/svn/trunk/src/AUTHORS | 
    awk '/Last-Modified/{ date=""; for(i=2;i<=NF;++i) date=(date " " $i); print date;}' | 
    xargs -I{} date -d {} +"%s"

然后将您当前的时间作为时间戳:

 date +"%s"

然后比较两个时间戳。

更新:

你应该学习一些有关shell脚本的初学者手册 这是你的剧本:

URL="$1"

timestamp() {
    date +"%s"
}

modificationTimeStamp() {
    curl -s -I HEAD "$URL" | 
        awk '/Last-Modified/{ date=""; for(i=2;i<=NF;++i) date=(date " " $i); print date;}' | 
        xargs -I{} date -d {} +"%s"
}

t=$( timestamp )
modt=$( modificationTimeStamp )

if [ "$t" -ne "$modt" ]; then
    echo "no match"
fi