multi-volume archive

当需要对比较大的目录进行打包时,我们经常会遇到的一个问题就是单个文件的体积过大,这时就需要多卷打包。应该有很多种方法可以实现,我目前只找到了两种。

Scenario:
假定我需要将一个体积比较大的目录(比如7G) /home/appdata 下的所有资料打包备份到 /backup ,受限于文件系统,单个文件最大只能为2G。

方法一,tar

# cd /home/appdata
# tar –verbose –create –multi-volume –tape-length=2048000 –file=/backup/appdata-1.tar –file=/backup/appdata-2.tar –file=/backup/appdata-3.tar –file=/backup/appdata-4.tar appdata

运行成功后,可以看到在/backup下生成了四个tar包文件。

注意几点:
1,使用tar多卷打包时不可以压缩,即,不能使用 –gzip, –bzip2 等选项。
2,使用 –file 来指定存放目标时可以多指定,比如,在本例子中,可以继续指定 –file=/backup/appdata-5.tar ,当所有文件被打包后,多于指定的存放目标会被安全地忽略。
3,选项 –tape-length 用来指定每个tar包的大小,其单位为KB

方法二,rar

# cd /home/appdata
# rar a -v2048000k /backup/appdata.rar appdata

运行成功后,可以看到在/backup下生成了三个rar文件,文件名是自动生成的,依次为:appdata.part01.rar, appdata.part02.rar, appdata.part03.rar

注意几点:
1,每个包名为自动生成,自动加上了partxx来标识包顺序
2,因为rar打包同时进行了压缩,所以其体积比较小
3,使用 -v 来指定单个包的大小时必须指明单位,比如在本例中我指定的单位是k,即KB

相应的解包指令:

# tar –extract –multi-volume –file=/backup/appdata-1.tar –file=/backup/appdata-2.tar –file=/backup/appdata-3.tar –file=/backup/appdata-4.tar
或者
# tar xMffff /backup/appdata-1.tar /backup/appdata-2.tar /backup/appdata-3.tar /backup/appdata-4.tar

# rar x /backup/appdata.part01.rar

This entry was posted in Linux. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">