将许多小文件保存到 LTO 磁带

将许多小文件保存到 LTO 磁带

我正在对 LTO 磁带进行备份。因为我的备份包含很多小文件,这会减慢从磁盘的读取速度。我正在使用 buffer 命令来防止擦鞋我的磁带:

bkname="test"; tobk="*" 
totalsize=$(du -csb $tobk | tail -1 | cut -f1) 
tar cvf - $tobk | tee >(sha512sum > $bkname.sha512) >(tar -tv > $bkname.lst) | mbuffer -m 4G -P 100% | pv -s $totalsize -w 100 | dd of=/dev/nst0 bs=256k

这种方法的问题是:我无法跨多个磁带进行备份,因为 tar 命令不直接访问磁带,因此无法识别完整的磁带。

缓冲小文件并同时进行多磁带备份的正确方法是什么?

答案1

考虑使用star而不是 GNU tar。该star程序内置了一个缓冲工具,可以解决您的问题。

答案2

tar 存档的大小不是计算的大小。只有预检运行才能提供正确的大小,但会使工作量加倍。一个例子:

~# du -csb /usr | tail -1 | cut -f1
=> 1585916720

~# tar --totals -cf /dev/null /usr
=> 1656514560

我的建议:使用像 dar 这样强大的备份工具http://dar.linux.free.fr/

相关内容