You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gsutil一年后突发rsync非重试异常,求助排查与解决

解决gsutil rsync同步报错的问题:跳过错误与详细日志技巧

首先得提一句,你的命令里有个小疏漏:重复使用了-x参数,正确写法应该是单次-x后跟过滤模式,比如-x 'Download/*',重复的参数可能会导致解析异常,建议先修正这个问题。

接下来针对你的两个核心需求,给出具体的解决方案:

1. 跳过不可重试错误,让同步继续执行

你已经用到了-C参数(允许单个文件出错时继续执行),但遇到非重试型异常时,gsutil默认还是会终止整个同步任务。要让它彻底跳过这类错误继续执行,你可以通过配置选项关闭硬停止:

gsutil -o "rsync:hard_stop_on_error=False" -V -m rsync -d -r -U -P -C -e -x 'Download/*' /opt/ gs://mybucket1/kraanloos/

这个配置会强制gsutil即使碰到不可重试的错误,也会继续处理剩余文件,而不是直接abort。

如果是文件校验和不匹配或权限类报错,还可以搭配以下参数:

  • --ignore-checksum:跳过校验和检查,强制同步文件
  • --skip-security-checks:跳过ACL和元数据的安全检查(适用于权限相关报错场景)

2. 输出更详细日志,定位异常文件

要获取足够详细的执行日志来定位问题文件,你可以替换-V(仅输出简要日志)为-D(调试级日志),或者通过配置提升日志级别:

# 方法1:用-D参数直接开启调试日志
gsutil -D -m rsync -d -r -U -P -C -e -x 'Download/*' /opt/ gs://mybucket1/kraanloos/

# 方法2:通过配置指定DEBUG级日志
gsutil -o "logging:log_level=DEBUG" -m rsync -d -r -U -P -C -e -x 'Download/*' /opt/ gs://mybucket1/kraanloos/

调试日志会输出每个文件的处理细节、对象列举进度,以及报错的具体文件路径和异常原因,帮你精准定位出问题的文件。

额外辅助技巧:快速定位异常文件

如果日志内容太多不好筛选,可以将日志输出到文件后搜索关键词:

gsutil -D -m rsync ... > rsync_debug.log 2>&1
# 之后在日志文件里搜索"CommandException"或"error"关键词,就能找到对应的问题文件路径

也可以先用--dry-run参数模拟同步,提前排查可能存在问题的文件:

gsutil -m rsync -d -r -U -P -C -e -x 'Download/*' --dry-run /opt/ gs://mybucket1/kraanloos/

内容的提问来源于stack exchange,提问作者Marcel Kraan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:29:59