发一个仿时光机器 rsync 备份脚本

2016-04-04 22:03:53 +08:00
 infinet

https://github.com/infinet/rsync-time-machine

好吧,这个名字很大路。

前段时间勒索软件横行,加上担心文件服务器曾因空调系统故障“发烧”埋下了隐患,所以写了这个脚本打算把文件服务器定期备份到另一台机器。现成的类似程序不少,比如 rsnapshot , backintime 等。个人已经用了好几年 backintime ,很不错,只不过 backintime 可以从本机往远程备份,反过来却不行。需要从远程往本地备份的通常是用 sshfs 把远程 mount 到本地,再从本地备份到本地。这样的话完全不能发挥 rsync 最神奇的功能。

功能:

4061 次点击
所在节点    分享创造
12 条回复
guonning
2016-04-05 00:10:56 +08:00
已收藏
RqPS6rhmP3Nyn3Tm
2016-04-05 00:28:34 +08:00
如果能加密就更好了!现在用的是自己写的脚本,定时打包后 PGP 加密上传百度云。
虽然这样很傻,但是百度云空间大啊…
ivmm
2016-04-05 07:31:57 +08:00
个人也觉得最好有加密
churchmice
2016-04-05 09:30:21 +08:00
楼主这功能 rbme 早就实现了吧
infinet
2016-04-05 09:34:15 +08:00
@BXIA @ivmm 提几个思路,
可以用 eCryptfs 、 EncFS 等把敏感数据先加密,然后再备份,这样存放备份的目录可以直接和云端同步;

或者用 dm-crypt 等加密存放备份的硬盘分区,但这样就不能直接和云端同步了;

不知道建立在 eCryptfs 上的文件系统能不能支持 hard link ,要不然可以 eCryptfs 加密存放备份的目录。
infinet
2016-04-05 10:43:14 +08:00
@churchmice 以前没 google 到 rbme...,它的报告和自动剩余空间处理很强大,不过对我来说 rbme 还是不太适用,因为它是根据剩余空间和 inode 来删除过去的备份,而不是象时光机器一样配置为自动保留周备份,月备份;另外它必需通过建立几个 rbme 符号连接来同时跑多个备份任务,这种设置方式有点费脑子。
RqPS6rhmP3Nyn3Tm
2016-04-05 11:02:23 +08:00
@infinet 想也是想到了,但是这样一个显著的问题是无法恢复到指定时间点的文件。不知道有没有办法可以做成 Time Machine 这样的加密备份
infinet
2016-04-05 20:49:02 +08:00
@BXIA 刚试了一下,可以在 eCryptfs 上用 hard link ,这样就简单了,在 USB 硬盘上建个保存备份的目录并用 eCryptfs 加密,每次备份前 mount 这个目录。要恢复指定时间点直接查看该时间的备份就是。这个加密目录 umount 后就可以直接向云端同步。
julyclyde
2016-04-05 21:23:39 +08:00
现成的 rsnapshot rdiff-snapshot
infinet
2016-04-06 08:38:33 +08:00
rsnapshot 只能设置保留过去 m 天和 n 小时的备份; rdiff-snapshot 我用过一段时间,网络传输效率很高,底层用的就是 rsync ,磁盘空间利用率也不错,但恢复备份不直观,不能直接浏览备份,还有它保存的是文件内容变动 delta ,所以不能任意删除某时间点的备份,删掉后前后备份就连不上了。

备份脚本太多了,各取所需吧。
julyclyde
2016-04-06 15:18:45 +08:00
@infinet 基于 rsync 的都不是保存 delta 吧
infinet
2016-04-06 16:09:48 +08:00
多数基于 rsync 的备份软件都是用 hard link 来保存没有变化的文件,如果文件有变动就存一份完整的新拷贝, delta 只用在传送; rdiff-backup 走的不同的路子,它保存前一个备份的基础上的 delta 。

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

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

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

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

© 2021 V2EX