darklinden
V2EX  ›  Windows

吐槽: Windows 竟然没有 rsync...

  •  
  •   darklinden · Jun 12, 2022 · 15252 views
    This topic created in 1604 days ago, the information mentioned may be changed or developed.
    今天终于闲了会儿,突发奇想把媳妇闲置很久的本子拿来折腾。
    为了不挨打先备份资料,把闲置很久的小米硬盘路由拎出来挂了个 smb ,然后 Windows 下挂载网络磁盘
    复制粘贴简直要命,中间 wifi 抽风断了下,40g 的文件夹复制了 20g 过去,看着就蛋疼
    掏出 powershell ,rsync ,命令不认识,掏出 mingw64 ,rsync 不认识,网上一查,各种收费版,一个 power shell 版的 github 上 10 年前的,装了还报错...
    于是装个 python 然后写个遍历文件夹判断大小不同重新复制

    Windows 下同步文件夹都用什么?总不至于都是各自造的轮子吧?简直了
    92 replies  •  2022-06-14 20:07:59 +08:00
    Overfill3641
    Overfill3641
    Jun 12, 2022❤️1
    1
    syncthing ... 说慢的只是你们没公网 IP ,打洞又不行,连上了公共中继池罢了,毕竟是免费软件,中继肯定比不上收费软件的。
    darklinden
    darklinden
    OP
    Jun 12, 2022
    2
    @v2tudnew 呃,内网同步过外网流量我是看不懂的
    BeautifulSoap
    BeautifulSoap
    Jun 12, 2022
    3
    同步用 syncthing 就行了啊
    Overfill3641
    Overfill3641
    Jun 12, 2022
    4
    @darklinden #2 我没见过,会绕外网。
    zhihuichan
    zhihuichan
    Jun 12, 2022 via iPhone
    5
    Freefilesync
    woctordho
    woctordho
    Jun 12, 2022
    6
    mingw64 (其实是 msys2 )可以用 pacman 装上 rsync

    https://packages.msys2.org/base/rsync
    hcql
    hcql
    Jun 12, 2022 via iPhone
    7
    试试 Deltacpoy 基于 Rsync 的
    huangsen365
    huangsen365
    Jun 12, 2022❤️5
    8
    robocopy
    HansZimmer
    HansZimmer
    Jun 12, 2022
    9
    用群晖自家的
    heyjei
    heyjei
    Jun 12, 2022
    10
    有的吧,我的电脑不知道怎么装了一个,不过印象中不太好用。
    victorc
    victorc
    Jun 12, 2022
    11
    是的,这是我还用 mac 的唯一理由
    clf
    clf
    Jun 12, 2022
    12
    syncthing 是最佳解决方案。

    有电脑一直不关机能一直同步的,那就用 Zerotier 组网,这样 Syncthing 能互相发现。

    没电脑一直不关机的,手机上也装一个,这样可以 A 电脑同步到手机,你在用 B 电脑的时候,手机会同步到 B 电脑上。
    sutra
    sutra
    Jun 12, 2022
    13
    cygwin 里头有吧。
    dawangyezi
    dawangyezi
    Jun 12, 2022
    14
    windows 有 robocopy
    shiny
    shiny
    PRO
    Jun 12, 2022
    15
    choco install rsync
    Tyanboot
    Tyanboot
    Jun 12, 2022
    16
    @clf syncthing 也自带了 nat 相关工具,基本上不用 zt 也能自己打个洞。
    PrinceofInj
    PrinceofInj
    Jun 12, 2022 via Android
    17
    单纯根据题主的需求,直接在复制粘贴一次,跳过已有文件就行了。如果不放心,贴完之后跑一遍 winmd5 就足够了。
    Hansah
    Hansah
    Jun 12, 2022 via Android
    18
    本坛搜 rathole ,rust 写的打洞工具,我用了,不错
    nicholasxuu
    nicholasxuu
    Jun 12, 2022❤️1
    19
    ubuntu subsystem 呀,硬盘什么的都直接 mount 了。
    vmebeh
    vmebeh
    Jun 12, 2022 via iPhone
    20
    用 total commander
    fatigue
    fatigue
    Jun 12, 2022
    21
    用 wsl 就行了,
    Linux:xxx 工具真好用!
    Win: 拿来吧你!
    Osk
    Osk
    Jun 12, 2022
    22
    方法 1:Windows 资源管理器再复制一遍, 到最后的时候, 会提示文件已存在, 勾选 “跳过相同时间和大小的文件”, 解决.


    方法 2:
    robocopy /mir /z src dst

    /z: 中断后可续传
    /mir : 镜像 src 文件目录树到 dst, 注意此选项会删除 dst 中多余的文件!
    其他选项: 日志文件, 重试次数, 重试前等待等.

    robocopy 的问题在于, 官方文档没有说明默认情况下判定相同文件的逻辑, 网友们实测的逻辑是: 文件若有相同的修改时间和大小则认为是一样的, 会自动跳过.



    所以, 也许一开始就不该用 Linux 的想法考虑, 走偏啦.🤣
    ilylx2008
    ilylx2008
    Jun 12, 2022
    23
    rsync 有 win 版本

    不过还是 wsl 里方便
    exip
    exip
    Jun 12, 2022 via Android
    24
    有个 cwrsync 可以用
    cpstar
    cpstar
    Jun 12, 2022
    25
    感觉非得在 windows 系统上拧巴 linux 的东西。
    windows 的复制粘贴虽然不好用,但是带着文件校验等各种东西,稳妥。复制粘贴,外加新版本的跳过,完全没有问题,印象上新版本也具有断点恢复的能力。或者就谨慎态度,一个目录一个目录或者几个几个地分头弄。
    啥,你用的 windows7 ?好吧,还好不是 xp ,还好不是 2k ,还好不是 98 。。。
    sidkang
    sidkang
    Jun 12, 2022
    26
    = =Wi-Fi 抽疯,WIN:这锅我不背
    Yadomin
    Yadomin
    Jun 12, 2022
    27
    PS> choco search rsync
    Chocolatey v1.1.0
    rsync 6.2.4 [Approved]
    dirsyncpro 1.53 [Approved] Downloads cached for licensed users
    2 packages found.
    xJogger
    xJogger
    Jun 12, 2022
    28
    命令行:rclone
    客户端:Syncbackfree
    订阅制:GoodSync
    kennir
    kennir
    Jun 12, 2022
    29
    total commender, 切换到 mac 后十几年了 mac 上也没个像样的仿品出来
    12101111
    12101111
    Jun 12, 2022❤️6
    30
    你猜微软为什么内置 ssh 不内置 rsync, 因为 ssh 全称 OpenSSH, 是 OpenBSD 做的
    https://github.com/openbsd/src/blob/master/usr.bin/ssh/LICENCE
    OpenSSH contains no GPL code.
    而 rsync 呢
    https://github.com/WayneD/rsync/blob/master/COPYING
    GNU GENERAL PUBLIC LICENSE
    Version 3

    微软要死敢内置这个, 第二天 FSF 就得让整个 Windows 开源

    OpenBSD 搞了一个 OpenRsync, 说不定可以内置进 Windows
    https://www.openrsync.org/
    Buges
    Buges
    Jun 12, 2022 via Android
    31
    我记得有个通过 cygwin 兼容层运行的 rsync 可以用。
    MasterMonkey
    MasterMonkey
    Jun 12, 2022 via iPhone
    32
    mobaxterm 你值得拥有
    dcsuibian
    dcsuibian
    Jun 12, 2022❤️1
    33
    不要用 Unix/Linux 的思想去操作 Windows ,会很难受的。

    话说为啥不把硬盘插电脑上直接烤?
    qiubangzhu
    qiubangzhu
    Jun 12, 2022
    34
    @v2tudnew syncthing 端口是多少 是不是要做端口映射才可以
    celeron533
    celeron533
    Jun 12, 2022
    35
    robocopy 就行了
    flynaj
    flynaj
    Jun 12, 2022 via Android
    36
    syncthing 全平台同步,要用 rsync wsl1
    yfugibr
    yfugibr
    Jun 12, 2022 via Android
    37
    有一个 cygwin 的版本,但是我尝试的时候发现文件权限会出问题,就放弃了

    也用过 robocopy ,但是在备份一个大文件夹时多次导致部分源文件丢失,没找到原因,也放弃了

    现在备份文件用的 wsl1 里的 rsync ,不怎么舒服,但没更好的方案(需求特殊,自己写的备份脚本),也只能凑合用
    fuis
    fuis
    Jun 12, 2022
    38
    用 rclone 就好了
    mmtromsb456
    mmtromsb456
    Jun 12, 2022
    39
    推荐使用 rclone bisync,配合 sftp 后端使用即可
    ClericPy
    ClericPy
    Jun 12, 2022
    40
    呃... 有没有一种可能, 我有个固态移动硬盘...
    seanzxx
    seanzxx
    Jun 13, 2022
    41
    用 Windows 的话,你就再复制一次呀,如果一个文件已经存在,他会提示你是要覆盖还是要跳过,也可以跳过所有存在的文件,你直接选跳过所有文件就好了,不用 rsync ,也不用 python 去写个小工具
    sulfoh6
    sulfoh6
    Jun 13, 2022
    42
    Freefilesync +1
    hxy100
    hxy100
    Jun 13, 2022
    43
    Cygwin 或者 Msys2 有 rsync 可以用,性能马马虎虎,WSL 也可以安装 rsync ( WSL2 往 Windows 磁盘读写文件速度略慢,指往 /mnt/下读写),本人常年在 Cygwin 下使用 rsync ,并无任何不适;

    documentzhangx66
    documentzhangx66
    Jun 13, 2022
    44
    楼上这些神童们,居然还有人推 syncthing 这种大雷...

    1.Windows 在高速健康环境下,第一反应的确应该是 SMB ,因为方便。

    2.但如果环境不健康,比如会经过高损坏风险的 U 盘、移动硬盘、非 ECC 或 RECC 内存,应该使用 WinRAR + 恢复记录 + 恢复卷,或者类似的带有检验功能的方案。

    3.如果传输环境是容易断网或失败的情况,专业一点的做法是带自动恢复的 VPN 通道 + 接收端开 FTP 服务 + 发送端使用专门的能自动恢复传输的 FTP 客户端。更专业一点用 Sync Back Pro 来充当 FTP 客户端,并且勾选传输后验证。
    documentzhangx66
    documentzhangx66
    Jun 13, 2022
    45
    另外,大文件传输,尽量别用 WIFI ,无论设备有多贵,无论协议是否最新。老老实实走有线。
    Overfill3641
    Overfill3641
    Jun 13, 2022
    46
    @qiubangzhu #34 默认会用 UPNP 自动映射,你也可以手动映射 22000 TCP/UDP 端口,可以更改端口( NAT 转发时内外端口必须一致)。


    @documentzhangx66 #44 啊对对对,你好棒棒哦。
    yaoyaomoe
    yaoyaomoe
    Jun 13, 2022 via iPhone
    47
    @documentzhangx66 syncthing 我感觉不算雷……不过前提是打开阶段性文件版本……至于校验并不适合实时同步而是适合冷备份……
    @fatigue 同意 并且针对 server 系统需要付比 desktop 高 n 倍费用的软件也可以用 wsl 曲线救国……

    @darklinden syncthing 如果有内网固定 IP 可以指定一下 正常情况下内网会自动,如果特别慢打洞了看下 windows 的防火墙……
    mingl0280
    mingl0280
    Jun 13, 2022 via Android
    48
    1. Robocopy+Windows 共享
    2. WSL1 随便用 rsync
    Eytoyes
    Eytoyes
    Jun 13, 2022
    49
    fastcopy 同步过 50T 的数据
    crab
    crab
    Jun 13, 2022
    50
    一直用 robocopy 递增备份
    xinshidai
    xinshidai
    Jun 13, 2022
    51
    我昨天刚用 msys2 中的 rsync 同步 centos 的仓库.
    virtualworld
    virtualworld
    Jun 13, 2022
    52
    windows 就要用 robocopy 啊
    cat9life
    cat9life
    Jun 13, 2022
    53
    robocopy 或者 xcopy 都能达到你的要求
    bsfmig
    bsfmig
    Jun 13, 2022
    54
    @12101111 也未必,微软可以把 rsync 作为一个单独的 exe 模块放进去组成一个“系统”,按 GNU 的定义这并不会导致系统的其他部分被迫开源,因为其他部分并不依赖 rsync 。其实这也是 Android 整合 Linux kernel 的做法。
    encro
    encro
    Jun 13, 2022
    55
    Windows 也有 FileSystemWatcher ,相当于 inotify 。实现同步也不太难。
    kokutou
    kokutou
    Jun 13, 2022
    56
    msys2 里面有 rsync 啊

    vopsoft
    vopsoft
    Jun 13, 2022
    57
    windows 有 robocopy 这个速度无敌
    610915518
    610915518
    Jun 13, 2022
    58
    可以看一下我写的教程,如何在 Windows 上使用 Rsync

    https://acbetter.com/posts/use-rsync-by-git-bash-on-windows/
    gogogo1203
    gogogo1203
    Jun 13, 2022
    59
    谁跟你说 windows 没有 rsync? https://prasaz.medium.com/add-rsync-to-windows-git-bash-f42736bae1b3 git bash 里装 rsync, 在 vscode 里直接用。
    scegg
    scegg
    Jun 13, 2022
    60
    1996 年之前用 xcopy ,之后 robocopy 替代了前者。

    另外根据 wikipedia 信息,使用 rsync 且支持 windows 的软件有:
    BackupAssist
    cwRsync
    Grsync (免费)
    GS RichCopy 360
    LuckyBackup (免费)
    rclone (免费)
    Syncrify
    tym (米阿尼分)
    root01
    root01
    Jun 13, 2022
    61
    filesync 用这个就行了
    raptor
    raptor
    Jun 13, 2022
    62
    没装 cygwin 的 windows 我都不会用
    treizeor
    treizeor
    Jun 13, 2022
    63
    verysync 挺好用的
    qW7bo2FbzbC0
    qW7bo2FbzbC0
    Jun 13, 2022
    64
    Resilio Sync
    botman
    botman
    Jun 13, 2022
    65
    看起来 lz 用 win 有点上火了,哈哈,话说回来,一直在用 wsl 的,之前用过一个从 cygwin 提取的独立小包,几 M 的样子,解压就能用,也可以看下 fastcopy ,经典神器了,win 这类工具还是蛮丰富的。
    palxex
    palxex
    Jun 13, 2022
    66
    这么说 win 没有的多了,还没有 dd 呢。
    libook
    libook
    Jun 13, 2022
    67
    通常 Linux 兼容需求首推 WSL2 ,Windows 的分区会自动挂载到 WSL2 文件系统里,可以对这些文件进行操作。
    特殊需求必须用 Windows 原生运行方式的,可以考虑 Cygwin ,我稍微查了一下,是有 rsync 软件包的。我此前想在 Windows 上原生运行 XServer 再把 WSL2 里的 GUI 程序投上来当做 Windows 程序用,就是用 Cygwin 装的 XServer ,自己找第三方的不是闭源就是收费。
    xz410236056
    xz410236056
    Jun 13, 2022❤️1
    68
    两台电脑中间拉根网线,共享文件夹。windows 的逻辑就是你别整那花里胡哨的,GUI 天下第一
    vhus
    vhus
    Jun 13, 2022
    69
    还是别费劲儿了,先同步到 onedirve 吧。
    折腾一顿,又不是每天都用。
    HankAviator
    HankAviator
    Jun 13, 2022
    70
    试用 wsl 后果断弃坑 mingw ,但正如上面说的,同步文件如果在 /mnt 下文件系统读写性能不够,会很蛋疼。
    msg7086
    msg7086
    Jun 13, 2022
    71
    你跟我说 mingw64 里没有 rsync 我可就乐了(狗头
    Googlefan
    Googlefan
    Jun 13, 2022
    72
    Resilio Sync
    est
    est
    Jun 13, 2022
    73
    windows 别人主推的是 shadow copy 。。。你要硬套一个 rsync 。。。wsl 里装一个呗
    Tink
    Tink
    Jun 13, 2022
    74
    有单文件版本的,直接编译成 rsync 了
    googl8812
    googl8812
    Jun 13, 2022
    75
    用 Beyond Compare 啊
    documentzhangx66
    documentzhangx66
    Jun 13, 2022
    76
    @yaoyao1128

    1.我前几年用 Syncthing ,同步逻辑鬼一样,该同步的不同步,什么时候开始同步也不知道。从那时开始就觉得这软件有问题。

    2.是否校验,并不是取决于是否是实时同步或冷备份,而是取决于数据重要性。

    比如说,如果你觉得电影、视频之类的文件,不重要,那复制时就不需要校验。

    但日常文档、备份、包括实时迁移,我都是要进行校验,因为我注重数据安全,不希望什么时候突然发现文件不对了。

    另外,你觉得实时同步不需要校验,我觉得你大概率也没 ECC 或 RECC 内存条。
    wdssmq
    wdssmq
    Jun 13, 2022
    77
    这种单次备份以防万一的场景,直接插上电脑复制就好吧。。移动硬盘版空间够的话直接克隆分区或全盘。。
    madao2015
    madao2015
    Jun 13, 2022
    78
    git bash 下装个 rsync 还挺好用的; 同步几百 g 都没啥问题
    newmlp
    newmlp
    Jun 13, 2022
    79
    Freefilesync
    ByteCat
    ByteCat
    Jun 13, 2022
    80
    scoop install cwrsync 行不行,同步用 Resilio Sync 其实更好,速度挺快的
    silvernoo
    silvernoo
    Jun 13, 2022
    81
    费那劲干啥? u 盘就能搞定的事
    shabbyin
    shabbyin
    Jun 13, 2022 via iPhone
    82
    wsl 里面有啊
    Xusually
    Xusually
    Jun 13, 2022
    83
    WSL 里面 apt 或者 MinGW 里面 Pacman 装一下就行了
    psyer
    psyer
    Jun 13, 2022 via Android
    84
    @clf resilio sync 和 syncthing 啥区别?
    Bingchunmoli
    Bingchunmoli
    Jun 13, 2022
    85
    smb ,NFS ,rdp ,HTTP SERVER, 直接 C+V
    clf
    clf
    Jun 13, 2022
    86
    @psyer
    resilio sync 前身 BT Sync ,国内我试过可以免代理就 P2P 同步(早的时候好像不行),相对来说,可以配置的东西会少一些,然后和外部的版本控制之类的无法集成的样子;免费版够用。

    Syncthing 开源,没有商业化运营,局域网发现比较简单,可以设置回收策略和版本控制;权限控制的粒度会更好一些,同步也可以有黑白名单。
    codefun666
    codefun666
    Jun 13, 2022
    87
    Windows 的 shell 能用? Windows 玩游戏还不错。
    thtznet
    thtznet
    Jun 13, 2022
    88
    没人了解 Windows 公文包 么?虽然在 Win10 里砍了。
    catalysia
    catalysia
    Jun 13, 2022
    89
    我没看懂是想要同步文件 还是只是复制粘贴过去
    复制粘贴的话 用 hfs 或者 ftp 协议呀 随便一个下载软件都支持断点续传呀
    12101111
    12101111
    Jun 13, 2022
    90
    @bsfmig 任何 exe 事实上动态链接了 ntdll.dll user32.dll 之类的动态链接库, 微软允许其他人动态链接这些库, 但如果自身发布的一个 exe 链接了这些库, 并作为一个整体(Windows 操作系统)向外发布, 那也会受到 GPLv3 的影响
    bsfmig
    bsfmig
    Jun 13, 2022
    91
    @12101111 原来如此。
    yaoyaomoe
    yaoyaomoe
    Jun 14, 2022 via iPhone
    92
    @documentzhangx66 三个相互同步的存储设备两个 ecc 一个普通的 我说不需要校验是因为同步过程不需要,开启版本控制后同步定期校验对比足够了,同步是一直在后台进行而不是一次性的复制粘贴所以随时可以补救。不知道你对版本控制是什么设置方式,我对版本控制是保留 365 天并且每周 zfs 快照,数据两地三机五副本(不包括冷备份)。同步造成五个副本全部出错还找不回来那只能说你版本控制有问题而不是同步过程有问题。用最基础的校验去选择准确文件还能出问题的话肯定是有三个副本都是错误且还出现了同样的错误,一个 1 字节的文件在同样位置出现相同的错误的概率都是在出错的情况下的 256 分之一。与其在意同步过程中的校验冗余性质不如考虑好怎么增加副本数让同步过后的单副本错误危害性降低。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1754 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 239ms · UTC 23:47 · PVG 07:47 · LAX 15:47 · JFK 18:47
    ♥ Do have faith in what you're doing.