cURL 总是获取缓存的副本

Posted

技术标签:

【中文标题】cURL 总是获取缓存的副本【英文标题】:cURL is always fetching cached copy 【发布时间】:2016-11-27 04:33:38 【问题描述】:

我的脚本通常需要大约 4 分钟才能完成,但是每当我在 SSH 中执行 cURL 时,它都会立即显示输出,这是一个老尝试。 这仅在 SSH 和 crontab 中发生,而 wget 和使用我的浏览器总是可以获得新鲜的内容。 我尝试在命令中添加'Cache-Control: no-cache' 参数,但没有帮助。

root@server [~]# /usr/bin/curl -H 'Cache-Control: no-cache' http://full-path/curl

我还应该尝试什么?

【问题讨论】:

也许是crontab 维护了一个缓存...看here。不过,还有其他关于此的问题,因此您不妨在 Google 上搜索“crontab 缓存”。 不仅是crontab,当我在crontab 外的终端中使用curl 命令时也会发生这种情况。它会立即输出一个旧副本。 【参考方案1】:

您可以附加 ?xyz=1469279729 以获取唯一的 url 字符串并避免缓存。但不太可能是 curl 正在缓存结果,无论是代理/服务器返回陈旧数据,还是使用本地缓存来 curl 的某个别名。

【讨论】:

我的实际 URL 有 ?corn 所以我附加了 &xyz=123 但这没有任何帮助。据我记得我有varnish 作为缓存服务器,我不确定,我会试着弄清楚。感谢您的意见。

以上是关于cURL 总是获取缓存的副本的主要内容,如果未能解决你的问题,请参考以下文章

CURL 仅在已修改时获取文件

如何删除 maven 获取的缓存本地工件?

Gatsby 总是获取缓存的数据

linux curl 获取 Google 搜索结果

使用查询参数缓存获取的破坏图像

HTTP权威指南----缓存