问题

问题

问题

如何才能rsync将数据解压(但可高度压缩)到单个压缩档案(.tar.gz.zip等)中,而不用每次都传输所有数据?

当前的

这是我现在正在使用的:

rsync -a --delete-during "/home/" "/mnt/external-hdd/backups/"

在本地端 ( /home/),将有数千个可压缩的小文本文件。在“远程”端 ( /mnt/external-hdd/backups/),将有本地端的精确副本。

通缉

  • 本地:与之前相同
  • “远程”端:homes.tar.gz包含来自的所有数据/home可以逐步更新rsync就像默认的工作方式一样

我不会单独访问 中的特定文件homes.tar.gz。如果出现问题,我会将其恢复到homes.tar.gz包含的内容。

由于数据被压缩,这将显著减少存储大小。

最好不需要tar czf homes.tar.gz backups/; mv homes.tar.gz /mnt/external-hdd/backups/homes.tar.gz。也就是说,tar环和每次传输所有数据

答案1

我将使用 gzip 压缩:

tar zcf /mnt/external-hdd/backups/home-$HOSTNAME-$(date +%F_%H%M%S).tar.gz /home

如果您需要更好的压缩,但速度较慢,请使用xz

tar Jcf /mnt/external-hdd/backups/home-$HOSTNAME-$(date +%F_%H%M%S).tar.xz /home

xz如果你有多核 CPU,则可以加快一点速度:

tar cf - /home |xz -T 0 > /mnt/external-hdd/backups/home-$HOSTNAME-$(date +%F_%H%M%S).tar.xz 

答案2

我如何将未压缩的(但高度可压缩)数据 rsync 到单个压缩档案中[…]?

你不能:那不是事实rsync

你可以做什么:

  1. 用于rsync将文件(可能使用跨链接压缩)从源主机复制到备份目标,并使它们在目标上保持未压缩状态
  2. 使用tarpax将选定的文件从源主机复制到压缩档案中,然后将该档案复制到备份目标

find如果您想要压缩档案,那么和pax(或find和 GNU )的组合tar可以让您生成自上次运行以来已更改的文件集。

但是,这两种替代方案都无法满足您的要求,即增量更新但压缩的单一存档。您是否考虑过使用“Veeam Agent for Linux Free”等商业产品?

相关内容