求助:如何更好地在两个物理隔离的网络间同步目录?

2015-03-10 15:52:56 +08:00
 crisrock
两台windows平台的PC分属物理隔离的两个网络,现在有一个目录,目录里面有近万个大小不等的文件和几百个子目录,这些文件每天都会在这些子目录间移动,子目录的名称也可能会变化。两个网络间可以通过U盘或者光盘传递数据,但是每次把这个目录全部复制到U盘一遍觉得很慢,有没有什么更好的方法?比如把这些文件的操作记录下来,我只要拷一个文件到另一台机子上执行一下就行。
3097 次点击
所在节点    问与答
24 条回复
squid157
2015-03-10 16:01:58 +08:00
Rsync?
ksupertu
2015-03-10 16:07:02 +08:00
伟大的windows公文包
stupidcat
2015-03-10 16:12:01 +08:00
SVN,在U盘上建立repo
crisrock
2015-03-10 16:17:39 +08:00
@ksupertu 公文包不能把文件拷到第二台电脑,相当于第二台电脑上没有这些文件,和我的需求不同,以下是来自网络的复制内容:
====================================================
使用公文包与可移动媒体进行同步的步骤

将公文包复制到任何类型的可移动媒体。

将介质从第一台计算机中取出,然后将其插入第二台计算机。

对可移动媒体上公文包中的文件进行所需的所有更改。 请勿将公文包从可移动媒体复制到第二台计算机。

若要与第一台计算机同步更改,请将介质从第二台计算机中取出,然后将其插入第一台计算机。

在第一台计算机中,打开可移动媒体文件夹,右键单击“公文包”,然后单击“全部更新”以同步已经进行的所有更改。

注意

将公文包与可移动媒体一起使用时,决不会与第二台计算机同步公文包中的文件。 只能使用第二台计算机处理这些文件,然后与第一台计算机同步这些更改。

公文包不能与同步中心一起工作。

http://windows.microsoft.com/zh-cn/windows/sync-using-briefcase#1TC=windows-7
crisrock
2015-03-10 16:18:00 +08:00
@squid157 还要搭个服务器?
crisrock
2015-03-10 16:23:27 +08:00
@stupidcat 谢谢,请教一下u盘的repo里面会不会有这些文件的完整镜像?如果有的话,这不是我所希望的
squid157
2015-03-10 16:24:51 +08:00
@crisrock A rsync 到U盘,U盘rsync到B。都是本地。
squid157
2015-03-10 16:25:40 +08:00
@squid157 不过那么多移动操作,估计rsync也并不特别好。
crisrock
2015-03-10 16:28:23 +08:00
@squid157 u盘的rsync里面会不会有这些文件的完整镜像?
stupidcat
2015-03-10 16:35:40 +08:00
@crisrock
“完整镜像”肯定是没有,SVN repository本身是一个数据库,但是。。。。只要有这个U盘 就可以SVN checkout嘛,从而得到你的所有文件,以及所有的历史修改记录。不过你或许可以设置一个密码,来避免未经授权的checkout
我觉得,**如果**“在不知道密码的情况下,即使得到了SVN repository(即U盘),也无法解密(即checkout)其中的内容”,那么这个方案才可行。这个“如果”究竟成不成立我就不清楚了……
stupidcat
2015-03-10 16:38:41 +08:00
自己电脑上试了下,密码是在conf/passwd这个文件里明文保存的
crisrock
2015-03-10 16:46:48 +08:00
@stupidcat 学习了
我选了部分子目录和文件先试了一下 发现U盘上这个repo占用的空间也不小(近似于那些目录和文件的总体积)如果有更小巧的解决方案就更好了。
squid157
2015-03-10 16:47:08 +08:00
@crisrock 同步出来就是完整的镜像
crisrock
2015-03-10 16:48:28 +08:00
@stupidcat 嗯 我也看到了 这样似乎不太好,但是自己用凑合了
crisrock
2015-03-10 16:49:26 +08:00
@squid157 不同步 被人捡到U盘能看到完整的文件吗?我看了一下大家说的,似乎svn好一点
well
2015-03-10 16:50:26 +08:00
拔硬盘。
shiny
2015-03-10 16:54:03 +08:00
u 盘的文件系统可以加密的, svn 到 u 盘是个不错的主意,当年做开发也这么干过。
imn1
2015-03-10 17:14:49 +08:00
如果只是移动或者改名,其实很好办,内容有改动就麻烦了
玩集图的人手上会有一些“古老”软件专做这事,hunter / piccheck / csvworkshop之类,但估计现在你去网上也找不到这些咚咚了

其原理就是从一个源生成一个csv,包含:文件名、路径、字节数、CRC32四个字段的值
然后用这个csv和上述软件,到新目录(已包含一定数量的同类文件),用上述软件 hash CRC32 一次就能按 csv 里面目录和文件名归位,当然会同时生成一个 missing csv,就是源里面有,但新目录没有的文件,这样集图的人去补齐 missing 就收集完整了

如果觉得 hash 很慢,其实大可不必担心,以我的经验,i3 的 CPU,hash 不会比 copy 到移动盘慢多少,因为只有字节数相同才会 hash,字节数不同就直接视为不同文件无法归位了。另外就是 hash 过一次,存入另一个 csv 或 db,如果没改动,下次就不必 hash,只比较前后 csv 的文件名和路径就能重新归位

当然,这些软件其实不仅限于图片的,因为所有类型文件都可以 hash,只是它们最初就是集图玩家做出来的

你可以按上面这个原理自己写一个 CLI,easy job~
crisrock
2015-03-10 17:24:50 +08:00
@imn1 谢谢,是我没说清楚,文件的内容有时会变动
squid157
2015-03-10 19:44:16 +08:00
@crisrock rsync会包含完整的文件。不过svn的话,对方恢复出来文件也是毫无压力的。rsync基本就是智能一点的复制粘贴。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/175839

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX