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

WinSCP `synchronize`操作重复复制相同文件的配置需求

WinSCP synchronize操作重复复制相同文件的配置需求

看起来你遇到的问题是WinSCP同步时没能正确识别文件已经完全一致,导致重复上传——这大概率是因为跨Windows和Linux系统时,默认的文件校验逻辑出现了偏差(毕竟两个系统的文件时间戳精度、时区处理可能不一样)。下面我给你UI和命令行两种解决方案,都能帮你实现「仅复制真正变更的文件」的需求:

UI界面配置步骤

  1. 打开WinSCP的同步对话框(就是你截图里的那个界面)
  2. 点击左下角的「...」按钮,打开「同步选项」设置窗口
  3. 在「比较依据」区域,调整文件校验方式:
    • 优先尝试选择修改时间和大小:这个方式速度更快,但需要确保本地Windows服务器和远程CentOS服务器的时区一致,且WinSCP的「保留文件时间」传输选项已开启(在「传输设置」里可以找到),这样上传后远程文件的时间会和本地匹配,下次同步就能正确识别
    • 如果修改时间对比还是失效,就切换到内容校验和:这个方式会直接计算文件内容的哈希值(比如MD5)来对比,是最准确的判断方式,唯一的缺点是对大文件或大量文件来说,同步前的校验会稍慢一些
  4. 确认其他同步参数(比如「删除」选项)符合你的需求后,保存设置,再重复执行两次同步操作,应该就不会出现重复上传的情况了

命令行配置方式

如果你更倾向于用命令行脚本执行同步,只需要在synchronize命令中指定对应的校验参数即可:

  • 用「修改时间和大小」对比(速度优先):
synchronize remote "E:\testfolder" "/testfolder" -times
  • 用「内容校验和」对比(准确优先):
synchronize remote "E:\testfolder" "/testfolder" -checksum

注意:命令中的remote参数和你UI里的同步模式一致,作用是让远程文件夹匹配本地文件夹的内容;路径要严格对应本地Windows格式和远程Linux格式

补充排查点

从你提供的日志来看,两次同步间隔仅1分钟且文件未修改却仍被上传,说明默认的校验逻辑没起作用:

  • 可以先检查本地和远程服务器的时区设置是否一致,时区差异会导致文件时间戳被WinSCP误判为不同
  • 确认GoAnywhere服务器支持SFTP协议的校验和对比(绝大多数情况下是支持的,WinSCP会自动协商合适的哈希算法)

备注:内容来源于stack exchange,提问作者sal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 10:58:16