我如何编写一个脚本来将我的所有文件从本地服务器同步到云空间?这旨在作为备份。
问题:检查云驱动器是否已连接,如果没有,请连接。由于它仅限 webdav,我不断遇到 davfs2 问题。当连接意外关闭时,文件夹仍处于挂载状态,但无法访问,导致 rsync 挂起,也无法重新挂载。
问题:我想限制传输速度,这样我的线路就不会一直被完全阻塞。我说的是大量数据,最初可能需要数周才能上传。
问题:保持同步 - 我不知道 rsync 开箱即用的功能是什么,但我只想复制已更改和新的文件,在不询问的情况下覆盖已更改的文件,最重要的是,恢复部分上传的传输。编辑:对于该部分,以下命令可能应该执行:
rsync -a -u -z -P /source/ /target/ --bwlimit=1000 --append-verify
然而,另一个问题出现了。
- 问题:主机仅支持最大 1GB 的文件大小,大于该大小的文件应自动分割。
任何帮助都将不胜感激。我几乎不懂批处理方面的技能。Python 对我来说就够了!编辑:或者更好的是,一个完整的应用程序可以完成这项工作!
答案1
抱歉回复迟了,但为了帮助其他人,我编写了一个小的 Python 脚本来解决这个问题。它无法解决问题 4——我不确定什么行为在那里有意义(如果创建了一个与先前拆分的文件的某个段匹配的新文件,它应该做什么?),但除此之外,我编写它是为了做你所说的事情——将本地文件备份到云提供商。
无论如何,如果您愿意,它可能是一个很好的起点,您可以添加文件拆分功能。它可在此处获得:
https://github.com/j4m3z0r/davsync
我只针对几个 WebDAV 服务器进行了测试,它们对协议的解释似乎都略有不同。如果您发现它对您不起作用,请告诉我,我会尝试修复它。