1
killva4624 2022-08-10 14:23:34 +08:00
同步之前把原来的目录加上日期重命名一份?
|
2
cheneydog OP @killva4624 这样就没有 rsync 增量传输的优势了,跟自己每天打个包一样的效果。
|
3
vibbow 2022-08-10 16:46:39 +08:00
goodsync 可以保留历史版本
|
4
cheneydog OP goodsync 有两个问题。
1. 通过回收站来管理历史版本。个别文件恢复可以,多了不好弄。 2. 商业授权不好弄。 |
5
A3 2022-08-10 19:36:46 +08:00 via Android
同步前用 git 存档?
|
6
XiLingHost 2022-08-10 19:39:58 +08:00
试试 freefilesync ,可以配置删除方式为移动到一个指定的文件夹
|
7
wlsnx 2022-08-10 23:10:45 +08:00 1
如果一定要用 rsync 的话,可以在服务端用硬链接来假装备份文件,定期创建和删除硬链接就行了。
或者试试 https://github.com/borgbackup/borg |
8
JohnH 2022-08-10 23:31:55 +08:00 1
如果是为了备份的话,可以试试 restic ,
https://restic.net/ 增量、压缩、版本管理、仅保留最新的几次备份点,想要的都有。 但 restic 跟 rsync 一类典型的区别是,前者是备份,后者是同步。 |
9
greenskinmonster 2022-08-10 23:36:49 +08:00 via Android 1
rsnapshot ,基于 rsync
|
10
fox0001 2022-08-11 00:35:39 +08:00 via Android
@killva4624 #1 需要保留历史版本,就是一楼的方案了。
op 说的“增量传输”是什么意思?我发觉 rsync 是判断文件有更新,就把该文件完整复制到目标路径,再删除目标路径的旧文件。我使用 rsync 时是使用默认设置。 |
11
Windelight 2022-08-11 01:01:03 +08:00 via Android
我倒是觉得,直接 rsync+git 就可以了。rsync 先干净同步一次,push 一下子算 initial comment ,然后如果你是定时执行 rsync 的话,每同步完一次,就 push 一下子,文件变了就推送上去,没变的就没变,被删除的文件自动成零。
当然这个存储成本是取决于你要存档的数量,以及保留的版本流量。rsync 和 git 不修改源码,你就该咋用还咋用。 |
12
lovelylain 2022-08-11 08:20:41 +08:00 via Android
换支持快照的文件系统,例如 btrfs ,同步前创建快照,只保留最近 N 个快照
|
13
y830CAa5nink4rUQ 2022-08-11 09:03:38 +08:00
最佳方案是 ZFS 、BTRFS 之类支持快照的文件系统,每次 rsync 之后,打个快照完事。
|
14
coolloves 2022-08-11 10:45:50 +08:00 2
如果一定要用 rsync,且是定时同步的话,要保留历史版本可以考虑
源 R─| ├─副本 A ├─副本 B ├─副本 C 设置三个定时,定时 1 同步到 A,.......以此类推 |
15
xuboying 2022-08-11 12:22:01 +08:00
这个不是 rsync 一个软件能做到的,可以考虑配合 rsnapshot + crontab 做版本备份
rsnapshot 用硬链接,很节约空间。 |
17
cheneydog OP |
18
Windelight 2022-08-12 16:04:21 +08:00 via Android
@cheneydog 如果这样不行,还是尝试使用 Windows 卷影复制(需要一个 Server),或者 BTRFS 吧。
|
19
cheneydog OP @JohnH restic 尝试了一下,各个方面都满足需求。
备份清理方案很好。Rest Server 支持。SFTP 支持。webdav 还在路上。 略微有点不好的就是备份后的结构是 restic 自定的,基于 snapshot 统一回滚。没有那么直观的看到单个文件,偶尔恢复一个小文件的场景不方面。 |
20
gumuxi 184 天前
@coolloves 好思路,可以多个定时任务,不同执行时间,比如 7 个副本,分散在 7 台服务器,周 1 到周 7 ,每天一个服务器节点的 rsync 同步,这样就可以有 7 个副本可以回溯回滚了。
|