osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

win_文件目录同步_rsync_FreeFileSync

转载注明来源: 本文链接 来自osnosn的博客,写于 2025-01-25.

需求背景

  • win电脑中的某些目录,需要冷备份到移动硬盘。
    而这些使用中的目录,内容常常会被更改。
    每次备份,不知道那些备份过。只好把移动硬盘中的删光,再重新备份。很是麻烦。
    有文件目录同步工具就比较方便。
  • 云主机debian系统中的网站,以及部分目录,也需要冷备份到本地硬盘。
    目前的做法是,本地也搭建一个debian系统,把移动硬盘插上,用rsync命令做定期同步。
    不想搭建这个本地的debian系统。
    直接在win上操作会更方便。虽然会丢失文件的owner和文件权限属性。但这些对我来说不太重要。

rsync

2025-01记录

  • 去 rsync 官网。https://rsync.samba.org/download.html
    里头提到有第三方包 cwrsync,官网为 https://www.itefix.net/cwrsync
    提供包含 Cygwin的rsync for windows。无需另外安装Cygwin。
    cwrsync 分 server 和 client。其中 server版需要付费。client是免费的。
    对于我的需求,client版足够了。 server版虽然我不需要,但也是可以在网上找到下载的。
  • 支持 ssh 的 sftp
  • cwrsync 的 server版,
    • 当你需要远程到另一台 windows机器,才需要在对方 windows装 server版。
    • 如果别的机器,需要用 rsync远程到本地 windows机,本地才需要装 server版。
    • 因为 Linux都自带 rsync的 server,如需远程到 linux上同步,本地无需安装 rsync的 server版。
    • 本地两个硬盘,或两个目录直接的同步,无需 rsync的 server版。
  • cwrsync 的 client版,目前可以下载到 cwrsync_6.4.0_x64_free.zip 大小才 5.15 MB。
    下载后,解压就能用,无需安装。解压后11.6MB。
  • rsync 命令的参数,网上,或者在 Linux中,都能看到 manpage。
  • 解压后,里头有个 cwrsync.cmd,里头的注释中,有一些针对 windows使用的例子和说明。
    • 主要是说,windows中的绝对路径,是有盘符的并且代冒号。这个和rsync的参数语法有冲突。
      所以,如果源/目的 目录是 C:\WORK\ 要写为 /cygdrive/c/work/。win中不分大小写。
  • 另外,win10中自带ssh,但版本过低。与rsync配合不好。
    比如,把远程目录同步到本地:
    bin\rsync.exe -avzihP  user@192.168.1.10:bak/myfile/ ./myfile/
    
    会调用win10的ssh,导致失败。应该指定 cwrsync包中的ssh
    bin\rsync.exe -avzihP -e "bin/ssh" user@192.168.1.10:bak/myfile/ ./myfile/
    @echo off
    rem ::=rem 双冒号注释
    rem choice /C yn /T 10 /D n 
    rem timeout /T 10
    echo on
    pause
    
  • cwrsync 用的是 rsync-3.4.1 protocol version 32,
    Debian 用的是 rsync-3.2.7 protocol version 32,
    两者之间相互同步,没有问题。
    应该是 protocol version 32 相同的原因吧。
  • win10中的中文字符,文件编码格式。
    rem 批处理.bat 文件要保存为 ANSI格式。超长行Linux用 \, DOS用 ^ 结尾
    bin\rsync.exe -avzihP -f "merge rule.txt" ^
       /cygdrive/D/my目录/ ./my目录/
    
    # rule.txt 文件要保存为 UTF-8格式。注释用#。
    + *.zip
    + 要的文件名
    - *.exe
    - 不要的目录名
    
  • Linux->win10,win10->Linux 的中文字符,文件编码格式。
    rem 批处理.bat 文件要保存为 ANSI格式。
    bin\rsync.exe -avzihP -e "bin/ssh" user@192.168.1.10:bak/my文件夹/ ./my文件夹/
    bin\rsync.exe -avzihP -e "bin/ssh" ./my文件夹/ user@192.168.1.10:bak/my文件夹/
    

FreeFileSync

2025-01记录

  • 这个是开源免费版,官网为 https://freefilesync.org/
    GitHub上有个镜像 https://github.com/hkneptune/FreeFileSync
  • 支持 ssh 的 sftp
  • 免费版需要安装,安装过程提示有便携版,但要购买捐助版才行。
  • FreeFileSync 是个桌面图形界面。网上可以找到很多教程。这里就不赘述了。

----end----


转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/18692178.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .


posted on 2025-01-26 23:18  osnosn  阅读(122)  评论(0)    收藏  举报