当远程(Http)文件更改时如何执行操作?

2024-06-25

我想创建一个脚本,用于检查 URL 并在远程文件的“Last-Modified”标头更改时执行操作(下载 + 解压缩)。我考虑过使用curl 获取标头,但随后我必须将其存储在每个文件的某个位置并执行日期比较。

有没有人对使用(大部分)标准 UNIX 工具有不同的想法?

thanks


一种可能的解决方案是定期在客户端上运行该算法。

  1. 创建一个 HTTP 请求,指示If-Modified-Since标头等于本地文件的日期。如果文件尚不存在,则不包含此标头;
  2. 如果文件自上次更改以来发生了更改,服务器将向您发送该文件If-Modified-Since有效负载或发送中的标头304 Not ModifiedHTTP 状态。
  3. 如果您收到200 OKHTTP 状态只需从 HTTP 主体获取有效负载并解压缩文件。
  4. 另一方面,如果您收到了304 Not Modified您知道您的文件是最新的。
  5. Use the Last-Modified标题来触摸您的本地文件。这样您将与服务器日期时间同步。

另一种方法是服务器在文件更改时推送通知(例如广播包)。当收到通知时,客户端将执行上述算法。这意味着代码驻留在 HTTP 服务器中,监听文件系统更改,然后将它们广播给感兴趣的各方。

也许这个信息对于curl command http://www.cs.sunysb.edu/documentation/curl/index.html有一定的重要性:

时间条件

HTTP 允许客户端指定时间 文档的条件 it 要求。它是 If-Modified-Since 或 如果-未修改-自。卷曲让你 使用 -z/--time-cond 指定它们 旗帜。

例如,您可以轻松地制作一个 仅在以下情况下执行的下载 远程文件比本地文件新 复制。它会被做成这样:

卷曲-z local.htmlhttp://remote.server.com/remote.html http://remote.server.com/remote.html

或者,您只能下载文件 本地文件比远程文件新 一。通过在日期前添加日期来完成此操作 带有“-”的字符串,如下所示:

卷曲-z-local.htmlhttp://remote.server.com/remote.html http://remote.server.com/remote.html

您可以将“自由文本”日期指定为 健康)状况。告诉curl只下载 文件(如果此后更新过) 昨天:

昨天卷曲-zhttp://remote.server.com/remote.html http://remote.server.com/remote.html

然后 Curl 将接受广泛的 日期格式。你总是安排约会 反过来检查 在其前面加上破折号“-”。在其前面加上破折号“-”。

总而言之,您将需要:

  • 卷曲命令 http://linux.about.com/od/commands/l/blcmdl1_curl.htm
  • 触摸命令 http://linux.about.com/od/commands/l/blcmdl1_touch.htm
  • some bash 脚本
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当远程(Http)文件更改时如何执行操作? 的相关文章

  • 检测 UTF-8 编码文本文件中的损坏字符

    我有一个使用错误的字符编码编辑的文本文件 因此当我使用 UTF 8 打开它时 某些字符串中有一些 mojibake 和损坏的字符 哪种脚本语言能够最有效地检测这些损坏的字符 Perl 不是一个选择 我基本上试图找到一种使用脚本扫描文本文件并
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • awk 在Linux终端中输出类似表格或类似Excel的列?

    我做了一个长管子 最后是 awk print 5 t t 3 t 4 在 Linux 终端中 这些列用选项卡填充 第一列条目具有不同数量的字符 因此第二列结果并不完全垂直 怎样才能让桌子看起来更完美呢 尝试将结果通过管道传输到列 t awk
  • 如何强制 Angular Universal 从外部 api 预渲染内容?

    我想使用 SSR 来改进我的 Angular 单页应用程序的搜索引擎优化 我已经使用 Angular Universal 启用了 SSR 它致力于提供静态 html 但我的组件严重依赖异步 api 调用来构建页面上的内容 请参阅下面的示例
  • HTTP KeepAlive 连接已被服务器关闭,但客户端同时发送了请求

    场景如下 有一个 http 反向代理 它有一个与应用程序服务器的持久连接池 它已收到客户端的请求 并在检查连接打开后向后端发出相同的请求 同时 服务器在收到请求之前关闭连接 代理失败 从后端读取错误 错误被发送到客户端 应如何处理这种竞争条
  • 如何防止 ASP.NET 站点的图像盗链?

    防止人们从我的托管 ASP NET 网站热链接到图像的最佳 最简单方法是什么 我不需要防止所有图像 资源被热链接 我只是想防止热链接到网站上的特定图像 资源 供参考 它托管在 GoDaddy com 上 因此 IIS 技巧可能不起作用 最简
  • 将新行 JSON 上传到 Elasticsearch 批量 API

    我正在尝试使用 Bulk API 将新行 JSON 上传到 Elasticsearch 我上传的批量 JSON 如下所示 每个 JSON 都占一个新行 ip x x x x seen true classification maliciou
  • 无法在 Jenkins 管道作业中通过 DSL (groovy) 存储 sh 命令输出

    我想获得管道 Jenkins 作业中的最后构建输出并附加在电子邮件中 使用 emailext 插件 Curl 工作正常并提供正确的构建输出 但我无法存储在变量中以附加在电子邮件中 我正在使用最新的詹金斯版本 我可以看到有几个关于简单 sh
  • SQL 中的 Snowflake 脚本 - 如何迭代 SHOW 命令的结果?

    我正在查看新的 SQL Snowflake 脚本 预览版 但我不知道如何迭代SHOW命令 特别是当某些列是小写时 https docs snowflake com en developer guide snowflake scripting
  • 在 bash 中生成脚本并将其保存到需要 sudo 的位置

    在 bash 中 我可以根据此站点创建一个带有定界符的脚本 http tldp org LDP abs html abs guide html GENERATESCRIPT http tldp org LDP abs html abs gu
  • Windows 卷曲批处理文件

    我想使用 Windows 批处理文件进行 mailgun 卷曲调用 由于Windows shell不支持多行 如何在Windows批处理文件中执行以下curl函数 curl s user api key xxxxxxxxxx https a
  • 如何确保我的 HttpClient 4.1 不会泄漏套接字?

    我的服务器使用来自内部 Web 服务的数据根据 每个请求构建其响应 我正在使用 Apache HttpClient 4 1 发出请求 每个初始请求将导致对 Web 服务发出大约 30 个请求 其中 4 8 个套接字最终会陷入 CLOSE W
  • 使用列命令时出现 Bash 错误:“列:行太长”

    当我使用输入文件键入此列命令时 出现以下错误 column t text txt gt output column line too long column line too long column line too long column
  • 运行“read PATH”后出现“ls:未找到”

    我正在尝试编写一个小脚本来列出给定变量中的目录 然而我却跑不了ls在读取我对变量的输入之后PATH system bin sh echo enter directory for listing read PATH ls PATH R gt
  • 命令行参数出现空格的问题

    我有一个 Java 程序 我正在 Linux 环境中通过 bash 脚本执行该程序 这是我的简单 bash 脚本 它接受一个字符串 bin bash java cp com QuoteTester 1 问题是命令行参数可以带空格或不带空格
  • 需要一种临时重定向 STDOUT 的方法

    我知道如何在 Linux 中重定向输出 问题是 我的 bash 脚本中有很多输出 我不想输入类似的内容 echo foo gt gt bar 一遍又一遍地 我更愿意做这样的事情 hey bash for the time being put
  • git:每日更新日志

    如何生成按日期分组的提交变更日志 格式为 date today commit message1 commit message2 commit message3 date day 3 commit message1 commit messag
  • BASH:[ ](测试)行为不一致

    在我的狂欢中test有态度以身份退出0 test n echo true echo false gt true while test n echo true echo false gt false 这意味着当它根本没有收到任何参数时 它假设
  • PowerShell - 提示“您想继续吗”

    我有一个脚本用于自动化 WSUS 进程 它的最后阶段继续删除所有旧的 不必要的文件 对象 我想在清理阶段之前提示 按 输入 继续删除或按任何其他键停止 以便人们可以选择不运行它 我目前在脚本末尾的代码在这里 Get WsusServer 1
  • cURL 错误 28:5001 毫秒后解析超时

    我使用 WordPress 最近将我的网站从 cpanel 主机移动到带有 directadmin 面板的 Linux 服务器 转账后立即发现客户在通过EDD插件下载时出现以下错误 cURL 错误 28 5001 毫秒后解析超时 我也遇到了

随机推荐

  • 访问Expo SQLite数据库的物理存储

    我正在 expo CLI 下使用 React Native 开发一个 android 应用程序 我正在尝试使用 expo sqlite 库创建并写入数据库 我的测试环境是我的 Android 手机 通过扫描浏览器上的 Metro 捆绑包中显
  • AngularJS - 成功返回 $http.post

    我使用 AngularJs 我需要在 http post 连接后返回数据 这是代码 app controller PrincipalController http scope function http scope scope myData
  • 如何使用 C# 打开 Putty 会话

    我想知道如何在 Visual Basic Express 中使用 C 打开 putty 然后通过 ssh 会话执行命令 您可以使用 plink exe 进行 SSH 使用 pscp exe 进行 SCP https www chiark g
  • MYSQL:如何从姓氏中找到player_id?

    我现在尝试使用非标准化 摘要 表中的数据填充 testMatch 表 如下 测试匹配表 Field Type Null Key Default Extra match id int 11 NO PRI NULL match date dat
  • Angular 8 @HostListener('window:scroll', []) 不起作用

    我尝试使用 HostListener 跟踪滚动位置以更改标题的颜色 我的标头组件如下 import Component OnInit Input HostListener Inject from angular core import DO
  • Objective C:在 gdb 中哪里可以找到

    我正在尝试使用 NSZombie 调试我的程序 调试器确实返回了存在问题的实例的地址 但是我不确定在哪里获取运行命令 shell malloc history 所需的 pid 谁能告诉我在这种情况下使用的正确 pid 是什么 我尝试了 32
  • 无法从heroku访问API整个JAR已部署

    JAR已成功部署到heroku 来自命令行的消息 偏僻的 https minmint herokuapp com https minmint herokuapp com 部署到 Heroku 我的代码片段 RestController Re
  • 在 C# 中的用户控件中公开并引发子控件的事件

    你好 我有一个包含文本框的用户控件 我想访问文本框的 textchanged 事件 但在用户控件的事件属性中我没有看到文本框的事件 如何使用 C 在 Winforms 中公开公开的 UserControl 公开并处理子控件的特定事件 如果您
  • ConstraintLayout 相对距离百分比 %

    我正在与ConstraintLayout我想设置一个百分比从位于屏幕 52 的按钮 2 到 Textview Sample 的边距顶部 3 当然是相对于屏幕的高度而言的 该位置应该与其他 UI 组件相关 仅从屏幕顶部 或底部 参考指南 可以
  • 如何在 Eclipse PDT 中重新格式化多行注释?

    In Eclipse PDT Ctrl Shift F重新格式化代码 但是 它根本不修改评论 有没有办法将参差不齐的多行注释重新格式化为每行 80 个字符 或其他 即转换 We took a breezy excursion and gat
  • Shopware 6 在计划任务中获取上下文

    我只是想知道如何获取计划任务中的上下文 有静态方法 Context createDefaultContext 但它被标记为内部 我知道不应该创建上下文 而应该从更高的服务传递到您的服务 但这在计划任务中似乎不可能 我想我在 GitHub 问
  • 数据记录的类约束

    我有一个data type data BuildException a KillBuild JobID a Stage FailBuild JobID a Stage CancelBuild JobID a Stage StopBuild
  • Android SearchView 上是否有监听器来通知 SearchView 是否已展开并准备好接受输入?

    当用户未输入任何内容时 我想在 SearchView 中显示一些默认建议 我正在使用矩阵光标手动设置自定义建议适配器 我尝试在 onFocusChange 和 onClickListner 中设置适配器 但建议隐藏在键盘后面 显然建议加载时
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 内存泄漏 - 每个请求命中容器中运行的 Flask API 后

    我有一个 Flask 应用程序在 EC2 上的容器中运行 启动容器时 docker 统计数据显示内存使用量接近 48MB 进行第一次 API 调用 从 s3 读取 2GB 文件 后 使用量上升至 5 72GB 即使 api 调用完成后 使用
  • 使用空子文档集合保存 Mongoose 文档会导致重复键错误

    我有两个猫鼬模式 var productSchema new Schema name type String required true unique true var categorySchema new Schema products
  • 如何使用org.apache.commons包?

    在各种网络示例中 我看到了导入 例如 import org apache commons net ftp FTPClient 我不明白如何使用这些 而且 apache 网站也相当不清楚 我该如何使用这些类 我希望我需要下载一些东西 但如果有
  • 更改 iterm2 中的用户名、主机名和路径颜色

    如何更改 iTerm2 中的用户名 主机名和路径颜色 我正在使用内置的 Solarized 配色方案 In Ubuntu the same built in colorscheme is highlighted like In iTerm2
  • 不同智能手机上的视频观看行为(具有不同的怯场)

    我使用 videoview 或 MediaPlayer 在同一活动的多个视频视图中播放 rtsp 流时遇到兼容性问题 我就这个问题提出了另一个问题here https stackoverflow com questions 21111511
  • 当远程(Http)文件更改时如何执行操作?

    我想创建一个脚本 用于检查 URL 并在远程文件的 Last Modified 标头更改时执行操作 下载 解压缩 我考虑过使用curl 获取标头 但随后我必须将其存储在每个文件的某个位置并执行日期比较 有没有人对使用 大部分 标准 UNIX