linux - 从 'curl HEAD command' 获取日期值

标签 linux curl

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

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

此命令为我提供了所有详细信息,例如 Date: 、 Server: 、 Last modified date: 等。但我想获取文件创建时的日期。然后用系统日期检查它。如果不匹配,则该文件已过时。这能做到吗?

最佳答案

你可以这样做:

获取 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

关于linux - 从 'curl HEAD command' 获取日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220285/

相关文章:

curl - 如何使用curl下载一定范围内的文件,并分配自定义文件名?

curl - 如何从 curl 漂亮的 json 输出?

c++ - Linux QT 创建者 C++ : How to link with $$HOME?

c - C中是否有本地时间的反向功能?

linux - 使用包括 Lapack 在内的 CMake 将 Fortran 库从 Linux 交叉编译到 Windows

git - 如何解决[curl : (60) SSL certificate problem: self signed certificate in certificate chain]

php - 防止使用 PHP CURL 的远程脚本登录网站

php - 发出 POST 请求

linux - 从页面缓存中获取所有页面

linux - Liquidsoap 记录输出文件夹中的所有文件