日期:2014-05-16  浏览次数:20662 次

linux备份-- tar 使用
一、基础
1.tar的主要功能是:把多个文件放到tar文件中,并能够保持文件的权限属性。
2.压缩(c):两种压缩方式:gzip和bzip2,其中bzip2压缩比较高。
#使用gzip压缩:
tar czvf file.tar.gz /file/*  
#使用bzip压缩:
tar cjvf file.tar.bz2 /file/*                                 
#如果不压缩只打包:
tar cvf file.tar /file/*
3.只查看,不解压(t)
tar tvf  file.tar
tar tzvf file.tar.gz   .tgz
tar tjvf file.tar.bz2  .tbz
4.解压缩(x)
tar xvf file.tar -C /root
tar xzvf file.tar.gz -C /root/
tar xjvf file.tar.bz2 -C /root/
#一个用法
Dir=/root/file
[ -d "$Dir" ] || mkdir -p "$Dir" && tar xzvf file.tar.gz -C "$Dir"
5.添加文件(r)
tar rvf file.tar test.txt
#注意:r选项不能和gzip,bzip2合用。
压缩过的,先加压,再添加。
如:
bunzip2 file.tar.bz2
tar rvf file.tar test.txt
bzip file.tar
6.更新文件(u)
tar uvf file.tar test.txt
7.合并tar文件(A)
把a.tar和b.tar合并成ab.tar
tar Avf ab.tar a.tar b.tar  
#把a.tar和b.tar合并成a.tar
tar Avf a.tar b.tar
8.删除压缩包中的文件(--delete)
tar vf file.tar --delete install.log
9.进行目录搬移
#将目录/original复制一份到/move(-表示标准输入)
tar cf - /original | tar xvf - -C /move
10.远程备份
#将file目录压缩备份到 host1的/root/file.tar.gz
tar czvf host1:/root/file.tar.gz /file

二、进阶

1.如何将打包的文件分成多个保存?又如何解压呢?

tar 分卷压缩和合并
以每卷500M为例
tar分卷压缩:tar cvzpf - mytarfile.tar.gz | split -d -b 500m
tar多卷合并:cat x* > mytarfile.tar.gz


2.完整备份

#先进入单人模式,防止系统在变动
telinit 1
#创建完整备份,这里使用“-V”来对备份文件进行标识,标识名称为主机名_目录名_日期
tar cvf home.tar -V host1_home_`date +%Y%m%d%H%M` /home
#可以使用tar tvf home.tar 来查看tar文件的表头

#如果备份到磁带,加上M,可以建立多个备份文件
tar cMvf /dev/st0 /home

#一遍备份,一遍检查完整性
tar cWvf home.tar -V host1_home_`date +%Y%m%d%H%M` /home

3.增量备份
level 0  完整备份
level 1  记录自完整备份之后的改动
level 2  记录自level0,1 备份之后的改动

1)创建增量备份
#level 0 ,home-1.snar是一个供差异性比较的数据文件(metadata)
tar cvf home.tar -g /var/log/home-1.snar /home
#level 1
tar cvf home-1.tar -g /var/log/home-1.snar /home
2)解压增量备份
tar xvf home.tar -g /dev/null
tar xvf home-1.tar -g /dev/null

参考资料:
1.《实战Linux Shell编程与服务器管理》卧龙小三