lonel
1
情景
win10系统
- 磁盘上有一个文件夹名为
a,a的大小大概有30gb,文件数有3万,
a里面有个无用文件夹b,
- 需要每天对文件夹
a进行检测,如果检测到文件夹a有变动,就排除掉文件夹b进行备份,上传网盘,没有变动就不进行备份,类似增量备份,有什么好的方案吗?
因为数据量比较大,文件数目也比较多,如果直接上传文件夹到网盘比较耗时,而且为了防止网盘审查,所以我现在的方案是写了个python脚本每天打包一份文件夹的7z上传到网盘,打包后的压缩包也不小,有什么更好的办法吗?
sf467
3
简单来说,就是让 a 目录中的内容和云盘中保持一致,并在这个过程中排除 a 中的 b
然后云盘中的内容需要加密是吧
应该可以试试 rclone,如果你的云盘支持 webdav 的话,或者对接 openlist 给出 webdav
然后,使用 rclone 创建一个加密后端,这个加密后端再以你的云盘为后端。这样,你使用 rclone 向这个加密后端传输的文件,就会先在本地进行加密,然后上传。这个过程对你来说是透明的,你只需要向这个加密后端内的明文文件读写就可以了
rclone sync 可以让本地目录和云盘中保持一致,以文件为单位, rclone sync a cryptcloud:a 会检查两个目录的差异,然后将前者有而后者没有的文件传过去,最后删掉后者中前者没有的文件
sf467
4
至于排除 b 的话,rclone sync 应该也有这个功能,你可以找找文档
lonel
5
确实虽难但用
,参考了ai的建议,现在是定时运行脚本,
第一次运行时备份脚本会上传整个文件夹的全量压缩包,然后再运行脚本的话,
检测到文件新增和修改,只打包新增的文件和修改的文件创建一个增量压缩包上传,
检测到文件删除(文件重命名,移动视为删除) 强制整个文件夹创建全量压缩包并上传。
这种情况下如果恢复数据的话,需要下载下来全量压缩包,然后下载所有增量压缩包一个个解压覆盖过去,如果变动比较多的话,恢复比较麻烦。
假如新增,修改也直接全量备份的话,因为文件夹比较大,压缩包也大,又感觉太耗空间和带宽了,另外我感觉重命名,删除操作直接全量备份也不太好,所以想问问各位有什么更好的方案没有
您可以尝试对文件进行分组。比较可能同时发生变化的文件尽可能分为一组,然后再监测每组的变化情况。备份的时候,也是只将有变化的那一组进行打包与上传。这样,也算是部分地实现了“增量备份”。
不过这种方法就是比较考验您对文件分组的把控。
lonel
7
谢谢大佬的回答,
rclone sync 可以让本地目录和云盘中保持一致,这个类似同步盘了,我也考虑过,但是文件夹下的文件数目好几万,我试过网盘直接上传,速度太慢了,上传完不知道得传多久,rclone的上传速度应该和网盘差不多吧,我现在的方案是打包成 7z,然后 rclone+网盘openlist变成webdav上传,这样只需要上传一个压缩文件就行了
另外加密这方面我不太了解,rclone 的加密会影响本地文件吗,是直接把本地文件加密了然后上传 还是 不影响本地文件呢
sf467
8
是这样的,因为你提到打包后的包也不小,所以我想到的一个点就是避免在每次同步时都全量上传
rclone sync 的行为是只传输差异文件,这个时间应该会短很多。
更重要的一点是,rclone sync 传输文件时默认是4线程的,也就是说可以同时传输4个文件,这个值可以自己改,这样的话,哪怕传输整个目录,所需要的时间也和传输一个同体积的大文件差不多
rclone crypt 是创建一个加密后端,这个功能在 openlist 也有,openlist 的加密后端本身就移植自 rclone。它不会影响本地的文件,只是在你传文件的时候在你本地目录和云盘目录中加了一个解密/解密层,加密过程只发生在传输时。本地文件一直会是明文
如果体积还是很大的话,rclone 也有一个实验性的压缩后端,可以放在加密后端之前,这样在每次上传时,每个文件会先压缩,然后加密,最后存到云盘里。平时对文件的访问主要通过这个压缩后端进行。进一步减小传输时间
lonel
9
taosync这个项目我也看了,它好像也是那种同步盘的模式,问题在于我的文件夹的总文件数量太多了,几万的话,所有文件上传到网盘就要上传几万次,太耗时了,耗时越长出错几率越大,我之前直接用云盘客户端上传文件夹,一夜都没上传完,不知道最后是哪里出错了 
lonel
10
谢谢,我再研究一下rclone sync,如果可以多线程的话那应该可以加快不少速度。
另外请教一下大佬,rclone可以直接连接国内的网盘吗,我用的是中国移动云盘,现在是使用openlist转换它为webdav,rclone再连接webdav进行上传文件
sf467
11
目前只能用 openlist 中转,国内云盘只有支持原生 webdav 协议的才能直接用 rclone
我现在也在用中国移动云盘(
lonel
12
谢谢,这也是一个思路,不过我的文件主要是一些markdown笔记软件加引用的图片,都是同一类的文件,也不确定什么时候就改一下笔记,感觉分组没什么必要
tthy
(天天忽悠)
13
对于大量文件的备份 我自己是用的微力同步
https://www.verysync.com/
说明文档:
https://www.verysync.com/manual/
可以设置个目录做双向实时同步 或者 仅发送同步
也可以设置忽略某指定文件夹
或者选择性同步(这个必须登录才可用 我自己也没试过)
如果是备份到另一台设备 用这个就OK
如果是一定要备份到网盘 就需要一台设备挂载网盘目录
当然 所谓两个设备…完全可以是虚拟机
ykq
(ykq)
14
duplicati可以进行增量备份,而且是可以检测变动,同时是自动加密,至于上传你要研究一下
Colin5887
(Colin5887)
15
GoodSync可以完美解决这个需求,这软件我用了十来年了
- 支持定义路径,所以你可以添加一个任务,就是你的a文件夹和网盘的a文件夹的路径
- 支持filter,可以各种花式排除文件,比如排除b文件夹,排除bin和obj文件夹(编译器的垃圾文件),排除.ini文件(图标缓存)等
- 支持自动定时任务,我就是每天凌晨1点开始,1点,1点10分,1点20一直到1点50,分别同步我的服务器的某个文件夹(然后2点的时候C#的脚本去处理Git提交什么的)
对于你这个需求,应该是完美符合的。
我的同步是由
- GoodSync:手动,以及定时任务
- Syncthing:同步我的三四个设备,上线了就自动同步
- Git:每天增量备份
- 每个月手动插硬盘做手动备份,软件还是GoodSync
这几个共同组成的
1 个赞
skystar
(skystar)
16
突然好奇为什么不把git作为标准备份的方案?这样不是全球都能统一
但凡高端点的备份(打包)软件, 都有差分备份(连Windows自带的备份都支持差分的), 排除,加密功能
小众上就能搜出不少
不打包的备份, 或者叫"同步"软件, 有排除功能也很基础吧
(免费的)同步盘印象中没有特别大的, 手动上传貌似还是免不了
lonel
18
是的,我主要是陷入思维定势了
,一直想着几万文件数上传网络io次数太多,速度慢,打包成压缩文件上传只需要一次网络io,同时压缩包设密码也可以起到加密作用。
看了各位坛友的回复,思路打开,才发现有那么多种方法和软件,这些软件一般上传速度有多线程优化,而且提供加密功能,也可以解决文件数目过多上传慢和加密的问题
实际上增量备份也只有第一次是全上传的,后续增量上传只会上传变动过的部分的,所以只需要痛一次就无感了,比起压缩上传每次都有痛苦要好很多
我第一反应是这个,,不过这个不是云同步的,还得另外把云盘挂载成本地盘符
