我正在尝试通过制作 tarball 将 66 GB 备份到 NAS,但是在 62 GB 之后“tar -cSf ...”退出并出现“内存耗尽”错误。我的 Linux 机器有 1 GB 的 RAM 和 1 GB交换空间。
(编辑)我再次尝试了 tar 放弃的地方,并且 tar 很快又放弃了,所以看起来它可能无法处理特殊文件。
这些数据令人惊讶地难以备份。rsync 比 tar 慢 4 倍,因为 NAS 不是很快,并且它在中间退出并显示“对等方重置连接”;'cp' 在 cifs 共享上不能很好地工作,因为它不能创建特殊文件。有没有更好的办法?
我不知道为什么,但我可以建议你尝试类似
这将每 30 GB 创建一个文件。如果您达到 120 GB 标记,则需要添加第四个文件 (-f piece4.tar)
如果这仍然失败,您可以尝试使用较小的部分并编写脚本来生成命令行(因为带有 80 -f 参数的命令行编写起来会很痛苦:-))
尝试传递 --hard-dereference 选项。这将禁用硬链接跟踪,这需要与正在备份的 inode 数量成比例的内存。在尝试备份问题文件时尝试跟踪 tar 进程也可能很有趣。
-S
正在检查稀疏文件(并非所有文件范围实际上都物理分配在磁盘上的文件)。这可能是内存不足。尝试在没有 -S 的情况下运行它(如果你真的想要压缩它),看看这是否能解决问题。或者