OWA*_*DVL 3 linux bash wget shell-script
我正在尝试运行托管在 github 上的远程 bash 脚本:
wget -O - https://raw.githubusercontent.com/xxxxx/script.sh
Run Code Online (Sandbox Code Playgroud)
一切正常,没有问题
但是当我更新上面的脚本并运行相同的命令时,它会处理旧脚本
我试过--no-cache, --delete-after, 没有成功
如何每次都获得 wget 的新副本?
raw.githubusercontent.com 正在使用 CDN,您可以通过以下方式进行检查:
$ dig raw.githubusercontent.com +short
github.map.fastly.net.
1.2.3.4
Run Code Online (Sandbox Code Playgroud)
因此,如果该 CDN 正在强制执行基于 TTL 的缓存(通过检查Cache-Control300 秒的标头似乎是这样),那么您就会坚持下去。正如你所看到的,询问 with--no-cache没有任何作用,因为这是为了防止滥用而设计的。
您可能会以许多hacky方式绕过它,我不会列出,但您基本上是在试图规避 github 制定的政策,我建议您不要这样做。此外,今天有效的方法明天或在后续调用中可能无法以编程方式工作。
所以.. 只需等待 TTL 到期并获取新副本。
您可以编写一个脚本,每 x 秒轮询一次(但不要让它太快)并等到您看到X-Cache: MISS- 这将告诉您您获得了一个新副本。或者检查ETag更改。
或者您可以检查 github 是否为您提供了使您自己的代码无效的 API,或者使用最新提交调用文件的方法,例如:https : //raw.githubusercontent.com/xxxxx/script.sh? commit =12345
| 归档时间: |
|
| 查看次数: |
4175 次 |
| 最近记录: |