![将目录同步到备份 gzip 文件](https://linux22.com/image/174035/%E5%B0%86%E7%9B%AE%E5%BD%95%E5%90%8C%E6%AD%A5%E5%88%B0%E5%A4%87%E4%BB%BD%20gzip%20%E6%96%87%E4%BB%B6.png)
目标:高效备份和传输~/dircontaininginnumeraltinyfiles/
到/mnt/server/backups/dir.tgz
.我首先想到的当然是 rsync 和 gzip。但我也对其他路线持开放态度。
(在所需的备份过程结束时,/mnt/server/backups/dir.tgz
将是一个完整备份,即包含所有文件,而不仅仅是自上次备份以来更改的文件。简而言之,我只是在寻找一种在压缩和传输方面更有效的解决方案步骤比tar -cvzf /mnt/server/backups/dir.tgz ~/localdir/
。)
任何文件的本地创建都是不可取的(例如,本地 .tgz 备份并随后同步到服务器),而是将任何本地内容仅存储在内存中,例如通过管道。
为了澄清,我不想简单地将目录 rsync 到本地网络服务器的原因是因为源目录包含无数的、高度可压缩的小文件。因此,出于备份目的,单个、总体上较小的 .tgz 文件非常有吸引力。
也就是说,绝大多数文件在每次备份时都不会发生变化,因此简单的方法tar -cvzf /destination/blah.tgz ~/sourcedir/
效率相当低,因此在压缩方面需要一种智能的、仅增量的过程。
虽然 1Gb 本地网络的数据量并不算太大,但有些网络只有 100Mb 连接,因此在传输方面也需要一种智能的、仅增量式的流程。
附带说明一下,我现在正在做功课的一个方面是 tar 的 --listed-incremental 选项和 gzip 的 --rsyncable 选项。
答案1
暂时使用 tar -cvzf /mnt/server/backups/dir.tgz ~/localdir/ 。恭敬地离开这个线程。感谢您的意见。向大家致以最诚挚的问候。