寻求一个简单易用的跨平台同步工具(Linux/Win)

运用场景挺简单的,就是我需要从本地Windows环境(下称服务端,动态IP)向Linux服务器端(下称客户端,静态IP)推送/同步大批量文件,并在完成传输后执行校验。目前我用的是sFTP来无脑覆盖,显而易见地不是很方便。
几个具体的需求如下:

  • 安全传输:这个没什么好说的吧,我估摸着现在也没什么同步软件会走纯FTP的……以及最好支持SSH2/RSA密钥建立连接。
  • 手动单向同步:同步进程只能手动启动(不,我不想要随时保持文件的同步),且无论文件修改时间先后等区别,差异文件均由服务端文件覆盖客户端文件。
  • 占用资源少:客户端和服务端都是小霸王级别的,所以希望能在传输和校验时占用尽量少的资源。客户端(Linux)可以常驻守护程序,服务端(Windows)最好不需要常驻后台。
  • 简易方便:我属实不想再多折腾了……设置和使用能尽量从简就好,反正我也用不到多少高深的功能。

就这样了。感谢各位能读完我的需求,如果能给点建议和帮助就更加感激了~

坚果云不知道是不是可以满足需求

自己写个脚本SSH上传指定目录下全部文件呗。既然不要随时同步。

局域网跨平台同步的话, 很多文件同步软件都支持.

不过多数都是收费的.

https://www.goodsync.com/cn

订阅价格 119元/年. 价格我觉得不便宜, 但好像每年都有限免.

免费开源的话

还有其他各种另类的同步方案, 不过我看按照楼主的要求, 免费开源的那个应该最符合.

1 Like

看这个需求 不就是scp嘛……
windows上可以用winscp或者filezilla 再或者直接用scp命令(ssh自带)
linux上只要有ssh服务就行

不过校验一般都只是根据时间戳和文件大小 如果确实需要哈希 那就试试上rsync

1 Like

FreeFileSync,开源、免费。
根据你的需求描述,它大致的运作描述如下:
(这个场景下,建议你将 Windows 主机看作客户端,Linux 主机看作服务端,因为在 FTP/SFTP中,Windows 端使用的确实是客户端程序。)

  1. Linux 部署 FTP 服务器,或者启用 SFTP。
  2. Windows 安装 FreeFileSync,一是设置「目标」(即远程服务器)信息,主要有 FTP 或 SFTP 的 IP 和认证信息、要同步的目录路径,二是设置「源」(即本地客户端)信息,主要是本地目录路径,可以留空或初始化为任意文件夹。
  3. 在同步设置对话框中设置“比较”、“筛选”、“同步”三类参数,包括筛选过滤掉哪些文件、参与判断文件变化与否的是哪些属性、目标文件的删除策略。按照你的描述,同步模式设置为“镜像”。
  4. 将上述 2、3 保存为一个同步任务。
  5. 有需要时,载入/选取这个同步任务,根据需要微调,依次执行“比较”、确认差异、执行“同步”。

建议选取部分文件做测试。原因是,不确定 Linux 的文件系统与 NTFS 文件系统的策略差异。同时还建议检查 Linux 与 Windows 的系统时间是否同步,时区是否已一致。

2 Likes

只是这个需求的话,win端架设一个smb服务器,在linux用rclone挂载后,直接手动用rclone sync命令同步应该就完事了。

1 Like

更新一下,虽然各位提供的方法非常不错(如果正在看这篇帖子的你是因为有类似需求而找到这里的,我建议优先考虑他们给出的方法),不过综合了其他一些其他方面的考量,最后还是用了搭建git远程仓库的方法。一路下来整了不少乐子,但最终也算是靠着头铁把整套架子给莽起来了。如果哪天我的懒癌自愈了,说不定还能写个教程什么的,我觉得还是有些地方值得参考的。

再次感谢各位的帮助!

我的这个博客里面列出了20+种方案,找找看有没有你需要的?
不同电子设备之间传输和备份文件的方案

1 Like