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