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中不分大小写。
- 主要是说,windows中的绝对路径,是有盘符的并且代冒号。这个和rsync的参数语法有冲突。
- 另外,win10中自带ssh,但版本过低。与rsync配合不好。
比如,把远程目录同步到本地:
会调用win10的ssh,导致失败。应该指定 cwrsync包中的sshbin\rsync.exe -avzihP user@192.168.1.10:bak/myfile/ ./myfile/
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/ .