AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-32124

xander's questions

Martin Hope
xander
Asked: 2022-01-22 14:09:43 +0800 CST

gzip -t 可以检测 100% 的截断下载错误吗?

  • 5

场景:单个 1g CSV.gz 正在写入 FTP 文件夹。同时,我的客户端机器通过 sFTP 连接到该文件夹​​并尝试将其拉下。

问:在获取该文件后,无论我在客户端获得任何明显的长度,都可以gzip -t检测到部分文件并使部分文件失败,而不管截断在哪里?

我认为当片段突然结束时,解压缩或 -t'esting 会在 99% 的可能截断点上出错,但是 gz 结构是否有干净的切割点,gzip 会意外报告成功?

不在桌面上的缓解措施(因为如果其中一个在起作用,我不需要问上面的问题。)

  1. 通过另一个网络请求获取文件长度或 md5。
    1. 通过 FTP 轮询文件长度并不是很好,因为服务器可能会偶尔将块写入 zip 流。在批处理作业关闭文件句柄之前,将其误认为是完整的数据集对我的分析来说是致命的。
    2. 由批处理作业给出最终文件长度或散列消除了对这个 Q 的需要,但这给团队带来了实施负担,(对于这个 Q 的目的),可能不存在。
  2. 我们无法通过安排一天中不同时间的读/写来避免竞争。
  3. 服务器未使用原子移动操作。
  4. 我不知道 CSV 行/列计数;它会随着每个快照和每个集成而改变。也可以说被 gzip 压缩的文件是这个 Q 的不透明二进制 blob。
  5. 没有客户端=> sFTP 网络错误在起作用。(那些被捕获和处理;我担心的是读取一个在服务器批处理作业期间仍然偶尔写入的文件。)
  6. 使用 RESTful API 而不是 sFTP。

没有找到现有的 SO

一些 SO 涉及处理截断,但与需要在任何问题上可靠地使整个工作流程失败相比,它们处于有损可接受的上下文中。(我在医疗数据环境中进行计算,所以我宁愿让服务器停止并着火,也不愿传播不正确的统计数据。)

  • gzip:文件意外结束 - 无论如何如何读取文件是相反的 - 他们希望抑制 EOF 错误,因为这对他们的用例来说不是问题
  • 为什么在使用 gzip 时我的脚本中出现意外的文件结尾?只是 posix 流的结尾是故意插入的,head并且没有涵盖“是否有可能出现误报?”
  • zcat / gzip error while pipe out is very close,但不问“我保证会得到这个错误吗?”
  • 合并可能被截断的 gzipped 日志文件也很接近,因为它处理来自终止的批处理作业的部分文件,但仍然是丢弃一些不可读的行,而不是保证错误。
gzip
  • 1 个回答
  • 366 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve