每次我运行 rsync 来备份区块链时,它都会从头开始并尝试同步整个区块链,即使可能只有几个区块的新数据。rsync 手册页说:“它以其增量传输算法而闻名,该算法通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量”,但我不知道如何让它只更新已添加到区块链的新信息。由于区块链非常大,每天都复制整个区块链是荒谬的。rsync 可以只备份新数据吗?如果可以,我该如何告诉它这样做?
这是我正在使用的:
> rsync -avz --exclude-from=/exclude/file -e ssh /from/file [email protected]:/backup/file
答案1
根据本文,以下属性的组合应该适合您:
--partial --inplace --append
对于你来说,情况是:
rsync -avz --partial --inplace --append --exclude-from=/exclude/file -e ssh /from/file [email protected]:/backup/file
对我来说,区块链只需要“附加”数据(即添加的区块)也是有道理的。
此外,--progress
还可以添加。
答案2
我相信您需要这个--inplace
选择。
通常情况下,同步每次传输时都会创建一个新文件,传输成功后会删除旧文件,因此任何中断仍会保留文件的一个版本。--inplace
它直接写入现有文件,因此中断可能会留下不一致的文件;这就是它不是默认设置的原因。